gpt4 book ai didi

python - 如果其他列中的值相同,则向前或向后填充 NA

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:29 25 4
gpt4 key购买 nike

给出这个例子:

import pandas as pd
df = pd.DataFrame({
"date": ["20180724", "20180725", "20180731", "20180723", "20180731"],
"identity": [None, "A123456789", None, None, None],
"hid": [12345, 12345, 12345, 54321, 54321],
"hospital": ["A", "A", "A", "B", "B"],
"result": [70, None, 100, 90, 78]
})

因为前三行有相同的 hidhospital ,所以 identity 中的值也应该相同。至于其他两行,它们也具有相同的 hidhospital,但没有提供已知的 identity,因此 identity 中的值应该仍然缺失。换句话说,所需的输出是:

       date    identity    hid hospital  result
0 20180724 A123456789 12345 A 70.0
1 20180725 A123456789 12345 A NaN
2 20180731 A123456789 12345 A 100.0
3 20180723 None 54321 B 90.0
4 20180731 None 54321 B 78.0

我可以像 hid 一样遍历 hospitalfor hid, hospital in df[["hid", "hospital"]].drop_duplicates().itertuples(index=False) 的所有组合,但我不知道下一步该怎么做。

最佳答案

groupbyapplyffillbfill 结合使用:

df['identity'] = df.groupby(['hid', 'hospital'])['identity'].apply(lambda x: x.ffill().bfill())

这将在分隔指定组的值时向前填充 NaN。

关于python - 如果其他列中的值相同,则向前或向后填充 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52055014/

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