[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
2022-06-29 21:07:12
質問
Pandasのデータフレームがあります(これはほんの一部です)。
>>> d1
y norm test y norm train len(y_train) len(y_test) \
0 64.904368 116.151232 1645 549
1 70.852681 112.639876 1645 549
SVR RBF \
0 (35.652207342877873, 22.95533537448393)
1 (39.563683797747622, 27.382483096332511)
LCV \
0 (19.365430594452338, 13.880062435173587)
1 (19.099614489458364, 14.018867136617146)
RIDGE CV \
0 (4.2907610988480362, 12.416745648065584)
1 (4.18864306788194, 12.980833914392477)
RF \
0 (9.9484841581029428, 16.46902345373697)
1 (10.139848213735391, 16.282141345406522)
GB \
0 (0.012816232716538605, 15.950164822266007)
1 (0.012814519804493328, 15.305745202851712)
ET DATA
0 (0.00034337162272515505, 16.284800366214057) j2m
1 (0.00024811554516431878, 15.556506191784194) j2m
>>>
タプルを含む全てのカラムを分割したい。例えば、私はカラムを置き換えたい
LCV
というカラムに置き換えたい。
LCV-a
と
LCV-b
.
どうすればいいのでしょうか?
どのように解決するのですか?
次のようにするとできます。
pd.DataFrame(col.tolist())
をそのカラムに追加します。
In [2]: df = pd.DataFrame({'a':[1,2], 'b':[(1,2), (3,4)]})
In [3]: df
Out[3]:
a b
0 1 (1, 2)
1 2 (3, 4)
In [4]: df['b'].tolist()
Out[4]: [(1, 2), (3, 4)]
In [5]: pd.DataFrame(df['b'].tolist(), index=df.index)
Out[5]:
0 1
0 1 2
1 3 4
In [6]: df[['b1', 'b2']] = pd.DataFrame(df['b'].tolist(), index=df.index)
In [7]: df
Out[7]:
a b b1 b2
0 1 (1, 2) 1 2
1 2 (3, 4) 3 4
注意: 以前のバージョンでは、この回答は
df['b'].apply(pd.Series)
の代わりに
pd.DataFrame(df['b'].tolist(), index=df.index)
. これも同様に動作しますが(各タプルの Series を作成し、それをデータフレームの行として見るからです)、この方法は
tolist
バージョンよりも遅い / メモリを多く消費します。
からdenfromufaまで
).
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] pyvenv-3.4 は 0 ではない終了ステータス 1 を返しました。
-
[解決済み] ネストしたdictからのPythonデータクラス
-
[解決済み] 巨大なテキストファイルから特定の行にジャンプするには?
-
[解決済み] re.sub置換パターンにおけるキャプチャグループの後方参照への対応
-
[解決済み] pathlib.Pathオブジェクトの絶対パスを取得するには?
-
[解決済み] Django の Forms のテストはどのように書くべきですか?
-
[解決済み] 2つの日付の間の月数を求める最良の方法
-
[解決済み] PILでPNG画像を文字列に書き出すには?