python - 在 python pandas 中的数据帧上执行 groupby 时如何保留具有空(nan)单元格的行

标签 python pandas dataframe

我有一个数据框,其中包含四列:[“艺术家”、“专辑”、“标题”、“点”],其中前三列标识歌曲,第四列是乐谱。每首歌曲可能会多次出现在列表中,有些歌曲没有专辑信息,是对应单元格中的 nan 值。 我使用以下代码来获取每首歌曲的总分:

B = A.groupby(['Artist', 'Album', 'Title'])['Point'].sum()
C = B.sort_values(by=['Point'], ascending=[False]).reset_index(drop=True)

但我意识到,如果有任何行缺少专辑信息 (nan),则该行不会出现在变量 B 中。如何强制 nan 成为有效的独特信息?如果我有同一首歌曲两次,一次带专辑,一次不带专辑,则这两首歌曲在分组后应显示为两个不同的记录。

有没有办法正确地做到这一点,或者我是否必须通过强制所有“nan”变成空字符串或其他东西来对数据进行一些预处理?

最佳答案

.fillna('N/A') 将修复搜索。但有了更多数据,可能会有更好的解决方案

A['Album'].fillna('N/A', inplace=True)

那么你的总和就应该起作用了

关于python - 在 python pandas 中的数据帧上执行 groupby 时如何保留具有空(nan)单元格的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59297336/

相关文章:

python - pandas 在奇数行取平均值

python - Pandas :在分隔符上拆分一列,并获得唯一值

c# - Python.NET - 名称不能为空

python - 来自 Django 缓存的 TypeError

python - 将 'filepath' 列添加到 pandas DataFrame

python - 如何在特定条件下仅获取数据帧的第二个索引

python - str.join(iterable)方法如何在Python/线性时间字符串连接中实现

python - 如何在 Pandas DataFrame 中有效添加两列?

Python Pandas 两个条件数据框 groupby 运行排序

python - 检查数据帧单元格是否包含另一个数据帧单元格中的值