只有当一列的数字与另一列的字符串匹配时,才尝试将其相加例如,当col1为A.时,在col2中添加int
import pandas as pd
d = {'col1': ['A', 'B', 'A', 'B'], 'col2': [1, 2, 1, 2]}
df = pd.DataFrame(data=d)
df
使用DataFrame.loc
+GroupBy.transform
df.loc[df.col1.eq('A'), 'col2'] = df.groupby('col1')['col2'].transform('sum')
print(df)
或
new_df = df.assign(col2=df.groupby('col1')['col2'].transform('sum').where(df.col1.ne('A'),
df.col1))
输出
col1 col2
0 A 2
1 B 2
2 A 2
3 B 2