如何用Pandas DataFrame中的共享列值替换某些行?

Sha*_*ang 5 python dataframe pandas

假设我有以下熊猫DataFrame:

import pandas as pd

data = [['Alex',10],['Bob',12],['Clarke',13], ['Bob', '#'], ['Bob', '#'], ['Bob', '#']]

df = pd.DataFrame(data,columns=['Name','Age'], dtype=float)
print(df)
     Name Age
0    Alex  10
1     Bob  12
2  Clarke  13
3     Bob   #
4     Bob   #
5     Bob   #
Run Code Online (Sandbox Code Playgroud)

因此,DataFrame中存在奇数行Bob,即第3、4和5行。这些值一致#,而不是12。第1行显示Bob应为12,不是#

在此示例中,直接使用以下方法即可解决此问题replace()

df = df.replace("#", 12)
print(df)
     Name Age
0    Alex  10
1     Bob  12
2  Clarke  13
3     Bob   12
4     Bob   12
5     Bob   12
Run Code Online (Sandbox Code Playgroud)

但是,这不适用于较大的数据帧,例如

     Name Age
0    Alex  10
1     Bob  12
2  Clarke  13
3     Bob   #
4     Bob   #
5     Bob   #
6  Clarke   #
Run Code Online (Sandbox Code Playgroud)

因此第6行应该是6 Clarke 13

一个人如何替换任何行Age#用正确的整数其他行中给出的基础上Name?如果#存在,请检查具有相同“名称”值的其他行并替换#