[英]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.