我有以下数据框
ID col1 col2
1 val1 None
1 val2 val3
我想按ID分组并使用列表聚合col1和col2,所以我在做:
df = df.groupby('ID') \
.agg({'col1': lambda x: list(x),
'col2': lambda x: list(x)}).reset_index()
输出为:
ID col1 col2
1 [val1, val2] [None, val3]
但是我需要做的是在聚合时忽略None值并获得以下输出:
ID col1 col2
1 [val1, val2] [val3]
只需像这样修改您的groupby:
df = df.groupby('ID') \
.agg({'col1': lambda x: list(x[x.notna()]),
'col2': lambda x: list(x[x.notna()])}).reset_index()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句