我有一个这样的列表:
l=['-1.1430054,5.9142456,8.293411','-0.42156982,6.976654,8.832993','-0.024368286,5.3268127,10.694611',
'-0.09136963,3.1469574,13.665298']
现在,我想以该列表的形式创建一个数据框,使第一个元素用逗号分隔,以便数据框看起来像
df
col1 col2 col3
-1.1430054 5.9142456 8.293411
-0.42156982 6.976654 8.832993
-0.024368286 5.3268127 10.694611
-0.09136963 3.1469574 13.665298
我已经尝试使用此代码来做到这一点,
df=pd.DataFrame(columns=['col1','col2','col3'])
for i in range(0,len(l)):
temp_df=pd.DataFrame(columns=['col1','col2','col3'])
temp_x=l[i].split(',')[0]
temp_y=l[i].split(',')[1]
temp_z=l[i].split(',')[2]
temp_df['col1']=[temp_x]
temp_df['col2']=[temp_y]
temp_df['col3']=[temp_z]
df=df.append(temp_df)
这给了我想要的完美结果,但是我想减少执行时间, 寻找任何捷径或pythonic方式来减少执行时间。
答案 0 :(得分:1)
另一种解决方案,
df=pd.DataFrame({"col":l})
print(df.col.str.split(',', expand=True))
O / P:
0 1 2
0 -1.1430054 5.9142456 8.293411
1 -0.42156982 6.976654 8.832993
2 -0.024368286 5.3268127 10.694611
3 -0.09136963 3.1469574 13.665298
答案 1 :(得分:0)
分割字符串并将数据帧构造为:
pd.DataFrame(i.split(',') for i in l).add_prefix('col')
col0 col1 col2
0 -1.1430054 5.9142456 8.293411
1 -0.42156982 6.976654 8.832993
2 -0.024368286 5.3268127 10.694611
3 -0.09136963 3.1469574 13.665298