繁体   English   中英

熊猫用其他数据帧替换数据帧中的行

[英]pandas replace rows in dataframe with other dataframe

我有一个 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM