[解決済み] データフレームを複数のデータフレームに分割する
2022-02-18 15:22:43
質問
非常に大きなデータフレーム(約100万行)があり、実験(60人の回答者)のデータがあります。
データフレームを60個のデータフレームに分割したい(参加者ごとにデータフレームがある)。
データフレームに
data
という変数があります。
'name'
これは、各参加者のユニークなコードです。
以下のように試してみましたが、何も起こりません(もしくは1時間以内に実行が止まりません)。私が行おうとしているのは
data
を小さなデータフレームに分割し、それらをリスト (
datalist
):
import pandas as pd
def splitframe(data, name='name'):
n = data[name][0]
df = pd.DataFrame(columns=data.columns)
datalist = []
for i in range(len(data)):
if data[name][i] == n:
df = df.append(data.iloc[i])
else:
datalist.append(df)
df = pd.DataFrame(columns=data.columns)
n = data[name][i]
df = df.append(data.iloc[i])
return datalist
エラーメッセージは表示されませんが、スクリプトは永遠に実行されるようです。
スマートな方法はないでしょうか?
どのように解決するのですか?
なぜなら、新しいエントリを追加するための十分なスペースがない場合、定期的にリストを大きくしなければならないからです。この点では、サイズが前もって決定され、一度に割り当てられるリスト内包の方が優れています。
しかし、根本的にあなたのアプローチは、すでにデータフレームがあるのに、なぜこれらのユーザーごとに新しいものを作るのか、少し無駄だと思います。
データフレームを列で並べ替えると
'name'
で、インデックスをこれに設定し、必要ならカラムを削除しない。
そして、すべてのユニークエントリーのリストを生成し、これらのエントリーを使用してルックアップを実行することができます。また、データを照会するだけなら、コストのかかるデータコピーを行わずに、選択基準を使用してデータフレーム上のビューを返すことができます。
使用方法
pandas.DataFrame.sort_values
と
pandas.DataFrame.set_index
:
# sort the dataframe
df.sort_values(by='name', axis=1, inplace=True)
# set the index to be this and don't drop
df.set_index(keys=['name'], drop=False,inplace=True)
# get a list of names
names=df['name'].unique().tolist()
# now we can perform a lookup on a 'view' of the dataframe
joe = df.loc[df.name=='joe']
# now you can query all 'joes'
関連
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] リストを均等な大きさのチャンクに分割するにはどうしたらいいですか?
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PicgoのイメージベッドツールをPythonで実装する
-
Pythonによるjieba分割ライブラリ
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない