我想用每个字母(NaN
,A
,B
)分别用最后一个值替换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)
答案 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