我有一个pandas数据帧,想要使用两个条件索引子集行,然后用我创建的新数据帧替换该子集。但是如下所示,它只替换具有相同索引的行。如何使数据框的索引对齐,以便替换所有行都能生效?
df = pd.DataFrame({'A': [-4, 9, 6, -3],
'B': ['y', 'b', 'b','x']})
df
Out[581]:
A B
0 -4 y
1 9 b
2 6 b
3 -3 x
replacement = pd.DataFrame({'A':[-7, -4], 'B':['y','x']})
replacement
Out[583]:
A B
0 -7 y
1 -4 x
df.loc[(df['A']>0) & (df['B']=='b')] = replacement
df
Out[585]:
A B
0 -4.0 y
1 -4.0 x
2 NaN NaN
3 -3.0 x
df.loc[(df['A']>0) & (df['B']=='b')] = replacement.to_numpy()
。 - anky>>> df.loc[(df['A']>0) & (df['B']=='b')] = replacement.values
- Dishin H Goyani