gpt4 book ai didi

pandas - 如何通过分组来填充 NaN?

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

我有一个这样的数据框:

    ID  Age Gender  Date
0 1 18 Male NaN
1 1 18 Male NaN
2 1 18 Male 2016-03-11
3 2 22 Male NaN
4 2 22 Male NaN
5 4 25 Male NaN
6 4 25 Male NaN
7 4 25 Male NaN
8 4 25 Male 2017-04-27

Date 列中有一些 NaN 值,我想用它们各自的 ID 填充这些 NaN。例如:

ID = 1 在 dataframe 中出现了 3 次,并且只给出了一次日期 (2016-03-11)。我想用相同的日期填充剩余的两个 NaN。
ID = 4 也是如此,它出现了 4 次,而 Date 只显示了一次。简而言之,我想要这样的结果数据框:

    ID  Age Gender  Date
0 1 18 Male 2016-03-11
1 1 18 Male 2016-03-11
2 1 18 Male 2016-03-11
3 2 22 Male NaN
4 2 22 Male NaN
5 4 25 Male 2017-04-27
6 4 25 Male 2017-04-27
7 4 25 Male 2017-04-27
8 4 25 Male 2017-04-27

我尝试了 groupby 方法,但没有得到任何结果。你能告诉我如何在 Python 中做到这一点吗?

这是一个 CSV 文件,如果您想在本地计算机上尝试:

ID, Age, Gender, Date
1, 18, Male,
1, 18, Male,
1, 18, Male, 2016-03-11
2, 22, Male,
2, 22, Male,
4, 25, Male,
4, 25, Male,
4, 25, Male,
4, 25, Male, 2017-04-27

最佳答案

您可以使用 groupby 然后申请来回填充 ID 组。如果一个 ID 有超过 1 个日期,我不确定这是否会给你想要的结果。

df.groupby('ID').apply(lambda group:group.bfill().ffill())

输出:

   ID  Age Gender        Date
0 1 18 Male 2016-03-11
1 1 18 Male 2016-03-11
2 1 18 Male 2016-03-11
3 2 22 Male NaN
4 2 22 Male NaN
5 4 25 Male 2017-04-27
6 4 25 Male 2017-04-27
7 4 25 Male 2017-04-27
8 4 25 Male 2017-04-27

关于pandas - 如何通过分组来填充 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70032123/

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