kkj*_*joe 2 python list dataframe pandas
我有一个像这样的python pandas dataframe df:
a b
1 3
3 6
5 7
6 4
7 8
Run Code Online (Sandbox Code Playgroud)
我想将其转移到列表中:
[(1,3),(3,6),(5,7),(6,4),(7,8)]
Run Code Online (Sandbox Code Playgroud)
谢谢.
如果性能很重要,请使用列表理解:
[tuple(r) for r in df.values]
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
如果迭代列表而不是numpy数组,您可能会发现更好的性能:
[tuple(r) for r in df.values.tolist()]
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
这个方法可以任意数量的列.但是,如果要选择要转换的特定列集,可以事先选择它们.
[tuple(r) for r in df[['a', 'b']].values]
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用map.
list(map(tuple, df.values))
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
这与列表理解大致相同,表现明智.你可以用同样的方式概括.
另一种选择是使用apply结果并将其转换为列表:
df.apply(tuple, axis=1).tolist()
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
这个比较慢,所以不推荐.
| 归档时间: |
|
| 查看次数: |
5127 次 |
| 最近记录: |