动漫人物
此解决方案使用 for 循环,但它会遍历 A 的值为 NaN 的值。A = The column containing NaNsB = The column to be referencedimport pandas as pdimport numpy as np#Consider this dataframedf = pd.DataFrame({'A':[1,2,3,4,np.nan,6,7,8,np.nan,10],'B':['xxxx','b','xxxx','d','xxxx','f','yyyy','h','yyyy','j']}) A B0 1.0 xxxx1 2.0 b2 3.0 xxxx3 4.0 d4 NaN xxxx5 6.0 f6 7.0 yyyy7 8.0 h8 NaN yyyy9 10.0 jfor i in list(df.loc[np.isnan(df.A)].index): #looping over indexes where A in NaN #dict with the keys as B and values as A #here the dict keys will be unique and latest entries of B, hence having latest corresponding A values dictionary = df.iloc[:i+1].dropna().set_index('B').to_dict()['A'] df.iloc[i,0] = dictionary[df.iloc[i,1]] #using the dict to change the value of A这是执行代码后 df 的样子 A B 0 1.0 xxxx 1 2.0 b 2 3.0 xxxx 3 4.0 d 4 3.0 xxxx 5 6.0 f 6 7.0 yyyy 7 8.0 h 8 7.0 yyyy 9 10.0 j注意在 index = 4 处,A 的值如何更改为 3.0 而不是 1.0