簡體   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