问题描述

1
2
3
4
5
6
7
>>> data = {'state': ['US','Ohio','Nevada'], 'pop':[2.5, 4.3, 3.2]}
>>> df = pd.DataFrame(data)
>>> df
pop state
0 2.5 US
1 4.3 Ohio
2 3.2 Nevada

现在需要转换成

1
[[2.5, 'US'], [4.3, 'Ohio'], [3.2, 'Nevada']]

解决问题

可以使用 iterrows 实现:

1
2
3
4
5
6
7
>>> temp=[]
>>> for row in df.iterrows():
... index, data = row
... temp.append(data.tolist())
...
>>> temp
[[2.5, 'US'], [4.3, 'Ohio'], [3.2, 'Nevada']]

当然这是一种办法,还有一种更 python 的办法,pandas中提供方法转换:

1
2
>>> df.values.tolist()
[[2.5, 'US'], [4.3, 'Ohio'], [3.2, 'Nevada']]