python - 使用拆分条件从字符串列表中填充数据框
问题描述
我有一个这样的列表:
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 方式来减少执行时间。
解决方案
另一种解决方案,
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
推荐阅读
- firebase - Flutter 实时 Firebase CRUD 通知
- ios - 如何使用 Google Nearby Connections API 在范围内的 iOS 和 Android 设备之间连接和传输数据?
- css - 带有 CSS 的选项卡仅使用包含在目标 id 中的复选框 id
- c++ - 函数类型参数的模板参数推导
- bash - 如何使用 bash 将一行的最后一个 [0-9]{1,9} 单元格值移动到最后一行(.csv)
- java - 错误:不兼容的类型:推断的类型不符合推断的上限:INT#1 上限:
- tensorflow - TensorFlow SparseCategoricalCrossentropy 是如何工作的?
- javascript - css/javascript:检查触发悬停效果的图像像素
- r - tibble::add_row 到嵌套的 tibble 在 tidyr 1.0.0 下抛出错误
- php - 省略 PHP 三元和空值合并运算符中的“else”