首页 > 解决方案 > 使用拆分条件从字符串列表中填充数据框

问题描述

我有一个这样的列表:

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 方式来减少执行时间。

标签: pythonpandasdataframe

解决方案


另一种解决方案,

df=pd.DataFrame({"col":l})
print(df.col.str.split(',', expand=True))

输出/输出:

              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

推荐阅读