簡體   English   中英

Pandas dataframe:將列表的列轉換為列表

[英]Pandas dataframe: converting column of lists to a list

我有一個帶有列主題標簽的hashtags df ,例如:

df['hashtags']
>>>
0                                                       NaN
1                                                       NaN
2                                               ['COVID19']
3                                               ['COVID19']
4                         ['CoronaVirusUpdates', 'COVID19']
                                ...                        
132596    ['coronacrise', 'covid19', 'JN', 'NãoÉSóUmNúme...
132597                                          ['covid19']
132598                                ['corona', 'covid19']
132599                                                  NaN
132600                                          ['covid19']
Name: hashtags, Length: 132601, dtype: object

我想創建一個包含列的所有列表元素(除了Nan )的列表。
我試圖通過以下方式列出列表:

li = df['hashtags'].tolist()

但它將列表轉換為字符串並以字符串列表結束。 例如:

li[:5]
>>> 
[nan, nan, "['COVID19']", "['COVID19']", "['CoronaVirusUpdates', 'COVID19']"]

我想要的li[:5]的 output 就像:

['COVID19', 'COVID19', 'CoronaVirusUpdates', 'COVID19', 'coronavirus', 'covid19']

想法是首先通過Series.dropna ast.literal_eval列表 repr 轉換為列表並在列表理解中展平嵌套列表:

df = pd.DataFrame({'hashtags':[np.nan, np.nan, 
                               "['COVID19']", "['COVID19']", 
                               "['CoronaVirusUpdates', 'COVID19']"]})

import ast

out = [y for x in df['hashtags'].dropna() for y in ast.literal_eval(x)]
print (out)
['COVID19', 'COVID19', 'CoronaVirusUpdates', 'COVID19']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM