假设我有一个数据帧
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()