如何创建一个循环来替换NaN值?

时间:2019-04-21 02:53:35

标签: python pandas dataframe

enter image description here

我想用每个字母(NaNAB)分别用最后一个值替换C,然后合并它们。 我为每个字母(ABC)尝试了此代码,但不确定如何循环所有字母:

df_A = df[df['ST'] == A].fillna(method = 'ffill')

df_B = df[df['ST'] == B].fillna(method = 'ffill')

merge(df_A,df_B)

1 个答案:

答案 0 :(得分:2)

您可以创建一个df的副本,该副本填充第一列中的值,然后将新的数据框和原始的数据框组合起来以填补空缺:

copy_df = pd.DataFrame(df['ST'], columns=df.columns).ffill(axis=1)
df.combine_first(copy_df)
#  ST CO NO
#0  A  2  4
#1  A  3  A
#2  A  A  3
#3  B  8  6
#4  B  7  B
#5  B  5  8
#6  B  B  B
#7  C  9  4
#8  C  C  1