gpt4 book ai didi

python - 根据行条件替换 nan 值

转载 作者:行者123 更新时间:2023-11-28 17:06:02 33 4
gpt4 key购买 nike

这是我的原始数据框 df_:

 index_label,id_label,morning,evening,night
a,x,nan,eating,sleep
b,x,shower,eating,nan
c,x,nan,nan,nan
d,y,work,reading,travel
e,y,nan,reading,nan
f,y,work,nan,nan
g,z,shower,nan,travel
h,z,shower,eating,nan

我尝试用基于相同 id_labels 从相同数据帧 df 中获取的非值替换 nan 值。每列“早上”、“晚上”都需要从 nan 中清除。 “夜晚”列应保持不变。

例如,我为“早上”栏目写这个

crit_nan_ = pd.isna(df_[['morning']])
df_nan_ = df_.loc[crit_nan_]
df_clean_ = df_.loc[~crit_nan_]

但是我如何获得结果数据框:

 index_label,id_label,morning,evening,night
a,x,shower,eating,sleep
b,x,shower,eating,nan
c,x,shower,eating,nan
d,y,work,reading,travel
e,y,work,reading,nan
f,y,work,reading,nan
g,z,shower,eating,travel
h,z,shower,eating,nan

最佳答案

结果数据框可以使用df.groupby获得& df.fillna :

def fill_na(x):
return x.fillna(method="ffill").fillna(method="bfill")

for col in ("morning", "evening", ):
d[col] = d.groupby("id_label")[col].transform(fill_na)

关于python - 根据行条件替换 nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50947684/

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