我想将包含多个单词的每个单元格"分解"成不同的行,同时在连接时保留其评级和系统净值。我试图导入某人的pandas_explode库,但 VS 代码只是不想识别它。在 pandas 文档或一些漂亮的 for 循环中有什么方法可以提取和重新分发这些单词吗?示例 csv 位于 img 链接中
import json
import pandas as pd # version 1.01
df = pd.read_json('result.json')
df.to_csv('jsonToCSV.csv', index=False)
df = pd.read_csv('jsonToCSV.csv')
df = df.explode('words')
print(df)
df = df.to_csv(r'C:UsersalantDesktoptest.csv', index = None, header=True)
上面运行时的输出:
synset rating words
0 1034312 0.0 ['discourse', 'talk about', 'discuss']
1 146856 0.0 ['merging', 'meeting', 'coming together']
2 829378 0.0 ['care', 'charge', 'tutelage', 'guardianship']
3 8164585 0.0 ['administration', 'governance', 'governing bo...
4 1204318 0.0 ['nonhierarchical', 'nonhierarchic']
... ... ... ...
8605 7324673 1.0 ['emergence', 'outgrowth', 'growth']
CSV 文件
如果您有需要防止爆炸的列,我建议先将它们设置为索引,然后再爆炸。
对于您的示例,请尝试这是否适合您。
df = df.set_index(['synset','rating']).apply(pd.Series.explode) # this would work for exploding multiple columns as well
# then reset the index
df = df.reset_index()