将填充了多个值的单元格分解为唯一行



我想将包含多个单词的每个单元格"分解"成不同的行,同时在连接时保留其评级和系统净值。我试图导入某人的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()

相关内容

  • 没有找到相关文章

最新更新