gpt4 book ai didi

python - Pandas 根据另一列中的条件进行填充

转载 作者:太空狗 更新时间:2023-10-30 00:09:11 24 4
gpt4 key购买 nike

我有一个 pandas DataFrame,如下所示。

df = pd.DataFrame({
'date': ['2011-01-01', '2011-01-01', '2011-02-01', '2011-02-01', '2011-03-01', '2011-03-01', '2011-04-01', '2011-04-01'],
'category': [1, 2, 1, 2, 1, 2, 1, 2],
'rate': [0.5, 0.75, np.nan, np.nan, 1, 1.25, np.nan, np.nan]
})

我想使用 ffill 前向填充 rate 的值,除了我希望每个值也对应于适当的 category .如何让 df 看起来像这样?:

df
category date rate
1 2011-01-01 0.50
2 2011-01-01 0.75
1 2011-02-01 0.50
2 2011-02-01 0.75
1 2011-03-01 1.00
2 2011-03-01 1.25
1 2011-04-01 1.00
2 2011-04-01 1.25

最佳答案

使用groupby:

df.groupby('category').ffill()

输出:

   category        date  rate
0 1 2011-01-01 0.50
1 2 2011-01-01 0.75
2 1 2011-02-01 0.50
3 2 2011-02-01 0.75
4 1 2011-03-01 1.00
5 2 2011-03-01 1.25
6 1 2011-04-01 1.00
7 2 2011-04-01 1.25

如果您有其他不想填充的包含 NaN 的列,那么您可以使用它来仅在 rate 列中填充 NaN:

df['rate'] = df.groupby('category')['rate'].ffill()

关于python - Pandas 根据另一列中的条件进行填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48816457/

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