在不使用zip的情况下,为DataFrame中的每一行成对获取所有列值



假设我有一个数据帧

print(df)
a | b | c
--+---+---
1  20   30
2  200  300
3  2000 3000

我可以创建一个包含每行所有元素的列表,如

for a,b,c in zip(df["a"],df["b"],df["c"]):
function_using_them(a,b,c)

我的问题是,难道没有一种方法可以用更少的代码/更快的速度来做到这一点吗,因为我们已经将所有元素存储在数据帧的行中了,比如

for a,b,c in df.get_row_values():
function_using_them(a,b,c)

您正在寻找df.to_records。这将输出一个NumPyndarray,其中DataFrame标签为字段,DataFrame的每一行为条目。index=False:可以省略标签

df.to_records(index=False)

结果list(df.to_records(index=False)):

[(1, 20, 30), (2, 200, 300), (3, 2000, 3000)]

剧透供选择。

任一

`df.agg(list,1)`

df.agg(list,1).sum()

df.agg(tuple,1).tolist()

最新更新