python - 将数据框转换为元组列表

标签 python pandas list dataframe

<分区>

我有一个像这样的 python pandas 数据框 df:

a  b
1  3
3  6
5  7
6  4
7  8

我想把它转移到一个列表中:

[(1,3),(3,6),(5,7),(6,4),(7,8)]

谢谢。

最佳答案

如果性能很重要,请使用列表理解:

[tuple(r) for r in df.to_numpy()]
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]

注意:对于 pandas < 0.24,请改用 df.values

如果你遍历列表而不是 numpy 数组,你可能会发现更好的性能:

[tuple(r) for r in df.to_numpy().tolist()]
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]

此方法适用于任意数量的列。但是,如果您想选择一组特定的列进行转换,您可以预先选择它们。

[tuple(r) for r in df[['a', 'b']].to_numpy()]
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]

另一种选择是使用 map

list(map(tuple, df.to_numpy()))
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]

这在性能方面与列表理解大致相同。你可以用同样的方式概括。


另一种选择是使用 apply 并将结果转换为列表:

df.apply(tuple, axis=1).tolist()
# [(1, 3), (3, 6), (5, 7), (6, 4), (7, 8)]

这个比较慢,所以不推荐。

关于python - 将数据框转换为元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45285244/

相关文章:

python - 使用 gstreamer/Python 剪切视频的一部分(gnonlin?)

具有 'in' 循环和 'for' 语句的 Python 'if' 运算符

python - 使用 read_json 函数将 json 行规范中的 json 转换为 panda?

python - 在 Pandas 中拆分和转换字符串列

python - 如何在 python 3 中获取小数列表

python - Django 文件上传偶尔失败

python - 根据列值删除数据框中的行

python - 计算落在一组 x、y、z 坐标之间的值的数量

list - 将元组转换为列表的 Ocaml 函数

python - 如何更改 `aiohttp` 请求中的 SSL 版本?