2017-10-02 15 views
0

のリストに:変換intは、私は、データフレームに変換したいパンダDATAFRAME

import pandas as pd 
d = pd.DataFrame({id:[1, 2, 3]}) 

res = pd.DataFrame({id:[[1], [2], [3]]}) 

すなわち

にPythonのリストにセル内の各要素を変換します。

は、しかし、私はそれが下の代わりにタイプリストの種類を含むデータフレームを返さ

res = d.apply(lambda row: [row.id], axis=1) 

を試してみました:

<bound method Series.item of item 2\nName: .. 

ので、私が代わりにセル内の要素のリストタイプを取得することができますか?

答えて

1

これは動作します:

d['id'] = d['id'].apply(lambda x: [x]) 
d 
# id 
#0 [1] 
#1 [2] 
#2 [3] 

やデータフレームに直接applyを使用する:

d.apply(lambda r: [[r.id]], axis=1) 

#id 
#0 [1] 
#1 [2] 
#2 [3] 

データ

d = pd.DataFrame({'id':[1, 2, 3]})   # notice the quote around id 
+0

私はOPはそれがで列名として登録するために引用符で* ID *を配置する必要があると信じていますデータフレームの最初の作成 – ivan7707

+0

@ ivan7707あなたは正しいです。私はその部分を修正し、それがOPからのタイプミスかもしれないと思った。 – Psidom

1

あなたが大規模なデータフレームを使用している場合、それはあるかもしれませんapplyを回避することをお勧めします。試してみてください:

pd.Series(d.values.reshape(-1, 1).tolist()).to_frame(name=d.columns[0]) 
    id 
0 [1] 
1 [2] 
2 [3] 

パフォーマンス

d.shape 
(1000000, 1) 
1 loop, best of 3: 444 ms per loop # psidom
1 loop, best of 3: 304 ms per loop # coldspeed
+0

情報をいただきありがとうございます。今のところパフォーマンスは問題ではありませんので、ここでは簡単なフォームを使用します。 – user3230153

関連する問題