我有一个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