gpt4 book ai didi

python - 有条件地将某些行值复制到其他行

转载 作者:行者123 更新时间:2023-12-01 01:30:09 24 4
gpt4 key购买 nike

我有一个具有以下结构的数据框:

    code name age char
101 NaN NaN ts
101 NaN NaN tt
101 Carl 19 tt
102 NaN NaN ts
102 NaN NaN tt
102 NaN NaN tt
103 NaN NaN ts
103 Aoi 23 tt
103 NaN NaN tt

我想将值从列“name”和“age”复制到现有的其他行,具有相同的“code”和“char”为“ts”。我想要的结果数据框如下:

    code name age char
101 Carl 19 ts
101 NaN NaN tt
101 Carl 19 tt
102 NaN NaN ts
102 NaN NaN tt
102 NaN NaN tt
103 Aoi 23 ts
103 Aoi 23 tt
103 NaN NaN tt

预先感谢您的帮助!

最佳答案

使用GroupBy.apply向前和向后填充缺失值à然后通过 bool 掩码设置值:

cols = ['name','age']
df1 = df.groupby(['code'])[cols].apply(lambda x: x.ffill().bfill())

mask = df['char'] == 'ts'
df.loc[mask, cols] = df1.loc[mask, cols]
print (df)
code name age char
0 101 Carl 19.0 ts
1 101 NaN NaN tt
2 101 Carl 19.0 tt
3 102 NaN NaN ts
4 102 NaN NaN tt
5 102 NaN NaN tt
6 103 Aoi 23.0 ts
7 103 Aoi 23.0 tt
8 103 NaN NaN tt

关于python - 有条件地将某些行值复制到其他行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52967376/

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