gpt4 book ai didi

python - 按行分组、NaN 值和数字之间的联接和选择

转载 作者:行者123 更新时间:2023-11-30 22:20:32 26 4
gpt4 key购买 nike

我想转换这个数据框:

A   B   C   D
xx nan 2 3
xx 1 nan 2
yy 4 nan nan
yy nan 5 nan
yy nan 4 6
zz nan nan nan
zz nan 8 nan
zz nan 9 nan
zz 7 10 nan

进入最后一个(按“A”列分组)

A   B   C   D
xx 1 2 3
yy 4 5 6
zz 7 8 nan

我尝试使用groupby、fillna和apply,但到目前为止没有结果。

我希望最终的数据框尽可能显示非 nan 值以及每个唯一“A”列值的第一个值。

我怎样才能做到这一点?

最佳答案

使用groupby + first :

df = df.groupby('A', as_index=False).first()

替代方案是 agg具有自定义功能,如果将来会解决 this issue :

def f(x):
y = x.dropna()
return np.nan if y.empty else y.iat[0]
df = df.groupby('A', as_index=False).agg(f)

print (df)
A B C D
0 xx 1.0 2.0 3.0
1 yy 4.0 5.0 6.0
2 zz 7.0 8.0 NaN

关于python - 按行分组、NaN 值和数字之间的联接和选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48828968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com