本文介绍了PANAS-基于列对行进行分组,并将NaN替换为非空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试基于目标GROUP-BY";列在我的数据框上使用字符串创建一些聚合。
假设我有以下4列数据帧:
我要基于列";col1";对所有行进行分组,在此情况下,使用非NULL值进行分组。
所需输出如下:
我还尝试使用正常:
import pandas as pd from tabulate import tabulate df = pd.DataFrame({'Col1': ['A', 'B', 'A'], 'Col2': ['X', 'Z', 'X'], 'Col3': ['Y', 'D', ''], 'Col4': ['', 'E', 'V'],}) print(tabulate(df, headers='keys', tablefmt='psql')) df2 = df.groupby(['Col1']) print(tabulate(df2, headers='keys', tablefmt='psql'))但它不对NaN值进行分组.
如何执行此操作?
谢谢!
推荐答案如果可能,只需使用GroupBy.first针对每个组的第一个非缺失值提出问题:
df = pd.DataFrame({'Col1': ['A', 'B', 'A'], 'Col2': ['X', 'Z', 'X'], 'Col3': ['Y', 'D', np.nan], 'Col4': [np.nan, 'E', 'V'],}) df2 = df.groupby(['Col1'], as_index=False).first() print (df2) Col1 Col2 Col3 Col4 0 A X Y V 1 B Z D E更多推荐
PANAS
发布评论