我有一个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
你想要的IIUC
>>> df.loc[(df['A']>0) & (df['B']=='b')] = replacement.values
>>> df
A B
0 -4 y
1 -7 y
2 -4 x
3 -3 x
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句