使用混合分隔符从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

最新更新