gpt4 book ai didi

python(pandas)在数据帧内合并,无需for循环

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:25 24 4
gpt4 key购买 nike

您好,我有以下数据框:

>df1
code item01 item02 item03 item04 item05
0 1111 nan nan nan nan 440
1 1111 nan nan nan 650 nan
2 1111 nan nan nan nan nan
3 1111 nan nan nan nan nan
4 1111 32 nan nan nan nan
5 1111 nan nan nan nan nan
6 1111 nan nan nan nan nan
7 1111 nan nan nan nan nan
8 1111 nan nan nan nan nan
9 1111 nan nan nan nan nan
10 1111 nan nan nan nan nan
11 2222 20 nan nan nan nan
12 2222 nan nan nan nan nan
13 2222 nan nan nan 5 nan
14 2222 nan 7 nan nan nan
15 2222 nan nan nan nan nan
16 2222 nan nan nan nan nan

如何在数据帧中使用“code”列进行合并以获得 df2,而无需 for 循环或 iterrows()。

>df2
code item01 item02 item03 item04 item05
0 1111 32 130 nan 650 440
1 2222 20 7 nan 5 nan

最佳答案

您可以使用:

如果每组列中最多只有一个非值:

df.groupby('code').first()

如果可能的话多个值 - 更通用的解决方案:

cols = df.columns.difference(['code'])
df = df.groupby('code')[cols]
.apply(lambda x: x.apply(lambda y: pd.Series(y.dropna().values)))
print (df)
item01 item02 item03 item04 item05
code
1111 0 32.0 NaN NaN 650.0 440.0
2222 0 20.0 7.0 NaN 5.0 NaN

关于python(pandas)在数据帧内合并,无需for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48281593/

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