我有以下pandas dataframe
A B
a 15
a 15
a NaN
b 19
b NaN
如果A列vlaue为'a',我想用B填充B列,如果A列vlaue为'b',则列B为19,结果在数据帧之后:
A B
a 15
a 15
a 15
b 19
b 19
感谢。
答案 0 :(得分:1)
如果您的数据框已排序,则可以使用ffill
。
df.ffill()
输出:
或者如果它没有排序,您可以使用sort_values
和ffill
:
df.sort_values(['A','B']).ffill()
输出:
A B
0 a 15.0
1 a 15.0
2 a 15.0
3 b 19.0
4 b 19.0
答案 1 :(得分:0)
df.loc[(df['A']=='a') & df['B'].isnull(), 'B'] = 15
df.loc[(df['A']=='b') & df['B'].isnull(), 'B'] = 19
也许df['B'].isnull()
条款不是必要的 - 如果所有条款都是'和' b'无论如何,B列中的行必须是15或19。