मेरे पास एक डेटाफ्रेम है जो इस तरह दिखता है:

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

मैं इससे उन मानों वाले कॉलम 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

लेकिन यह केवल एक कॉलम देता है, और मैं सोच रहा हूं कि कोई बेहतर तरीका है या नहीं।

1
Anonymous Entity 10 सितंबर 2020, 09:56

1 उत्तर

सबसे बढ़िया उत्तर

शब्दकोशों की सूची के लिए नेस्टेड सूची समझ का उपयोग करें और 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
2
jezrael 10 सितंबर 2020, 09:58