拆分大熊猫列蟒蛇
问题描述:
我工作的Python 3.4和我有一个包含数据框大熊猫柱:拆分大熊猫列蟒蛇
0 [0.3785766661167145, -0.449486643075943, -0.15...]
1 [0.204025000333786, -0.3685399889945984, 0.231...]
2 [0.684576690196991, -0.5823000073432922, 0.269...]
3 [-0.02300500124692917, -0.22056499123573303, 0...]
Name: comments, dtype: object
,我想拆它,把它变成multople列:
column1 column2 ...columnx
0 0.3785766661167145 -0.449486643075943 last element in the first list
1 0.204025000333786 -0.3685399889945984 last element in the 2nd list
2 0.684576690196991 -0.5823000073432922 last element in the 3rd list
3 -0.02300500124692917 -0.22056499123573303 last element in the 4th list
你能帮我吗? 在此先感谢
答
^h AVING一个数据帧
df = pd.Series(
{'comments': [list(np.random.randn(3).round()) for i in range(4)]
}
)
其中df=
comments
0 [1.0, -2.0, 0.0]
1 [1.0, -3.0, -0.0]
2 [-0.0, -0.0, -1.0]
3 [-2.0, -2.0, -2.0]
调用
df2 = DataFrame(list(df['comments']))
你获得
0 1 2
0 1.0 -2.0 0.0
1 1.0 -3.0 -0.0
2 -0.0 -0.0 -1.0
3 -2.0 -2.0 -2.0
答
如果数据是lists
需要DataFrame
构造函数转换列comments
至numpy array
由values
+ tolist
:
print (type(df.loc[0, 'comments']))
<class 'list'>
df1 = pd.DataFrame(df['comments'].values.tolist())
#rename columns if necessary
df1 = df1.rename(columns = lambda x: 'column' + str(x + 1))
print (df1)
column1 column2 column3
0 0.378577 -0.449487 -0.150
1 0.204025 -0.368540 0.231
2 0.684577 -0.582300 0.269
3 -0.023005 -0.220565 0.000
答
使用@ dDanny的例子据帧,
df = pd.DataFrame(
{'comments': [list(np.random.randn(3).round()) for i in range(4)]
})
您可以使用apply将包含列表的列转换为Dataframe。
df.comments.apply(pd.Series)
Out[127]:
0 1 2
0 -2.0 -3.0 -1.0
1 1.0 0.0 1.0
2 -1.0 -1.0 -0.0
3 1.0 1.0 0.0