繁体   English   中英

从 dataframe 条目创建元组列表

[英]creating a list of tuples from dataframe entries

我有一个 dataframe df

movie_title          director_name     ...   oscar_wins   oscar_nominees
El Mariachi          Robert Rodriguez  ...       0             0
My Date with Drew    Jon Gunn          ...       0             0

我想要做的是创建一个元组列表,其中每个元组都是 dataframe 的一行。 所以 output 必须看起来像这样:

[(El Mariachi, Robert Rodriguez, ... , 0, 0), (My Date with Drew, Jon Gunn, ..., 0, 0) ...]

我已经尝试过迭代长度和列名,但没有成功。

list(zip(range(len(df)), column_names)

虽然我知道为什么它不起作用,但我不确定如何实现我想要的。 有没有人可以帮助我或为我提供修复?

谢谢,非常感谢!

列表理解的解决方案:

L = [tuple(x) for x in df.values.tolist()]
print (L)
[('El Mariachi', 'Robert Rodriguez', 0, 0), ('My Date with Drew', 'Jon Gunn', 0, 0)]

只需将列表中的值和map内部列表返回到元组:

list(map(tuple,df.values.tolist()))
# [('El Mariachi', 'Robert Rodriguez', 0, 0), ('My Date with Drew', 'Jon Gunn', 0, 0)]

你也可以这样做:

[tuple(x) for x in df.to_numpy()]
# [('El Mariachi', 'Robert Rodriguez', 0, 0), ('My Date with Drew', 'Jon Gunn', 0, 0)]

最快的方法是使用to_records()

df.to_records(index=False).tolist()
 all_rows=[]
 for index, row in df.iterrows():
        all_rows.append(tuple(row))

说明:使用 for 循环和 iterrows(),可以遍历 dataframe。 两个元素索引(表示 df 的索引)和行(描述样本的行,它是一个列表)。 现在使用 tuple(),将此行(列表类型对象)转换为新列表“all_rows”中的元组和 append

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM