如何从数据框创建列表?

时间:2018-10-25 06:50:42

标签: python pandas

我有一个坐标为x0,y0,x1,y1的数据框。我正在尝试获取坐标列表

datafrme就像-

      x0     y0      x1      y1      x2      y2 ...
 1  179.0   77.0    186.0   93.0    165.0   91.0... 
 2  178.0   76.0    185.0   93.0    164.0   91.0...

所需的输出

 [  [ [179.0,77.0], [186.0,93.0], [165.0,91.0  ],...  ],
    [ [178.0,76.0 ],[185.0,93.0 ],[164.0,91.0 ] ,...  ]
 ]

我正在尝试按行获取坐标列表

我已经尝试过

df = pd.read_csv(path,header=None)
df.reset_index(drop=True, inplace=True)
data = df.values.tolist()

感谢您提供任何见解!

2 个答案:

答案 0 :(得分:1)

[[[y['x0'], y['y0']], [y['x1'], y['y1']], [y['x2'], y['y2']]]for x,y in df.iterrows()]

df这将是您的数据框

输出看起来像您描述的格式

 [  [ [179.0,77.0], [186.0,93.0], [165.0,91.0  ],...  ],
    [ [178.0,76.0 ],[185.0,93.0 ],[164.0,91.0 ] ,...  ]
 ]

答案 1 :(得分:1)

如果性能很重要,请使用reshape

a = len(df.columns)
b = len(df)

L = df.values.reshape(b, a).reshape(b, a // 2, 2).tolist()
print (L)
[[[179.0, 77.0], [186.0, 93.0], [165.0, 91.0]], 
 [[178.0, 76.0], [185.0, 93.0], [164.0, 91.0]]]