首页 > 解决方案 > 如何在 python pandas 中的数据帧上执行 groupby 时保留带有空(nan)单元格的行

问题描述

我有一个包含四列的数据框:["Artist", "Album", "Title", "Point"] 其中前三列标识一首歌曲,第四列是乐谱。每首歌曲可能在一个列表中出现多次,有些歌曲没有专辑信息,这是对应单元格中的一个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”成为空字符串或其他东西来对数据进行一些预处理?

标签: pythonpandasdataframe

解决方案


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

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

你的总和应该工作


推荐阅读