我有一个数据框,其中包含四列:[“艺术家”、“专辑”、“标题”、“点”],其中前三列标识歌曲,第四列是乐谱。每首歌曲可能会多次出现在列表中,有些歌曲没有专辑信息,是对应单元格中的 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/