python - 从带有混合分隔符的 pandas DataFrame 中挑选出值
问题描述
我有一个如下所示的 DataFrame:
df.head()
0 x=2.875,y=-69.625,z=1071.6
1 x=1.625,y=-71.875,z=1071
2 x=5.75,y=-68.625,z=1071.2
3 x=3.75,y=-68.875,z=1072.2
4 x=-1.5,y=-71.625,z=1066
我想从中创建一个新的 DataFrame,其中 x、y、z 列包含这些值。我怎样才能做到这一点?到目前为止,我的尝试是这样的:
d0 = df.str.split(',', n=2, expand=True)
x = d0[0].str.split('=', expand=True)
x.head()
0 2.875
1 1.625
2 5.750
3 3.750
4 -1.500
但这只给出了一列,我想知道是否有更好的方法。
解决方案
对字典列表使用嵌套列表推导并传递给DataFrame
构造函数:
df1 = pd.DataFrame([dict([y.split('=') for y in x.split(',')]) for x in df])
print (df1)
x y z
0 2.875 -69.625 1071.6
1 1.625 -71.875 1071
2 5.75 -68.625 1071.2
3 3.75 -68.875 1072.2
4 -1.5 -71.625 1066
推荐阅读
- javascript - 量角器元素未附加到页面文档
- node.js - 笑话 + 模拟实现 + 调用次数:0
- c# - 机器中的多任务与多进程
- reactjs - 日期选择器 npm 在本机反应中不起作用
- node.js - Svelte/Sapper - 遇到与 Luxon 和 Lodash 相关的构建错误
- android-fragments - 尝试在 kotlin 的片段中执行自动图像滑块,但是 runouithread 不起作用。任何可能的解决方案?
- java - 浏览器和邮递员返回结果,但由于 %26,Rest 模板返回 0 个结果
- django - 反向访问抽象模型中的 OneToOne 字段
- python - 如何在python中计算矩阵的-1/2幂
- language-agnostic - 固件和嵌入式软件之间的真正区别是什么