Pandas dataframe:将列表列转换为列表

我有一个df带有列hashtags的数据框:


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]是这样的:


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


大话西游666
浏览 101回答 1
1回答

慕田峪7331174

想法是首先删除缺失值 by Series.dropna,然后将列表 repr by 转换ast.literal_eval为列表并在列表理解中展平嵌套列表:df = pd.DataFrame({'hashtags':[np.nan, np.nan,                                "['COVID19']", "['COVID19']",                                "['CoronaVirusUpdates', 'COVID19']"]})import astout = [y for x in df['hashtags'].dropna() for y in ast.literal_eval(x)]print (out)['COVID19', 'COVID19', 'CoronaVirusUpdates', 'COVID19']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python