在 groupby pandas 之前用字符串填充 nan

fill nan with string before groupby pandas

我有一个table这样的

src | dst | amount
------------------
a   | c   | 100
b   | c   | 50
a   | b   | 40
a   | nan | 10
nan | nan | 100

我想要一个像这样的 table,我按 src 分组并对发送的金额求和,如果 src 是 nan,我想用“未知”替换。

entity | sent 
------------- 
a      | 150    
b      | 50    
uknown | 100

如果 nan 是缺失值,请在聚合前替换它:

df = (df.fillna({'src': 'unknown'})
        .groupby('src')['amount']
        .sum()
        .rename_axis('entity')
        .reset_index(name='sent'))
print (df)
    entity  sent
0        a   150
1        b    50
2  unknown   100

或者如果 'nan' 是字符串使用:

df = (df.replace({'src': {'nan': 'unknown'}})
        .groupby('src')['amount']
        .sum()
        .rename_axis('entity')
        .reset_index(name='sent'))
print (df)
    entity  sent
0        a   150
1        b    50
2  unknown   100

另一个想法:

df.groupby(df['src'].fillna('unknown').rename('entity'))['sent'].sum().reset_index()

df.groupby(df['src'].replace('nan','unknown').rename('entity'))['sent'].sum().reset_index()