1. ホーム
  2. python

[解決済み] pandasのシリーズをDataFrameに変換する

2022-03-05 07:30:14

質問

Pandasシリーズのsfを持っています。

email
[email protected]    [1.0, 0.0, 0.0]
[email protected]    [2.0, 0.0, 0.0]
[email protected]    [1.0, 0.0, 0.0]
[email protected]    [4.0, 0.0, 0.0]
[email protected]    [1.0, 0.0, 3.0]
[email protected]    [1.0, 5.0, 0.0]

そして、以下のようなDataFrameに変換したいと思います。

index | email             | list
_____________________________________________
0     | [email protected]  | [1.0, 0.0, 0.0]
1     | [email protected]  | [2.0, 0.0, 0.0]
2     | [email protected]  | [1.0, 0.0, 0.0]
3     | [email protected]  | [4.0, 0.0, 0.0]
4     | [email protected]  | [1.0, 0.0, 3.0]
5     | [email protected]  | [1.0, 5.0, 0.0]

方法は見つけたが、より効率的な方法かどうかは疑問だ。

df1 = pd.DataFrame(data=sf.index, columns=['email'])
df2 = pd.DataFrame(data=sf.values, columns=['list'])
df = pd.merge(df1, df2, left_index=True, right_index=True)

解決方法は?

2つの一時的なDFを作成するのではなく、DataFrameのコンストラクタを使用して、Dict内のパラメータとしてこれらを渡すことができます。

pd.DataFrame({'email':sf.index, 'list':sf.values})

df を構築する方法はたくさんあります。 ドキュメント