pandas 如果另一列满足条件,则替换另一列中的值

x33g5p2x  于 2023-06-20  发布在  其他
关注(0)|答案(1)|浏览(172)

如果df['col1']=='A' then df['col2'].replace('X','Y ',inplace = True)
我写了一些类似df[df['col1'] == 'A']['col2'].replace('X','Y',inplace = True)的东西,但它给了我一个错误,我无法解决它。
我试图得到一个值在一个列被替换,如果一个条件在另一个列被满足

yzxexxkh

yzxexxkh1#

问题是inplace=True。您正在尝试这种方式修改“源” Dataframe ,但该 Dataframe 只是另一个 Dataframe 的部分视图(切片),因此它是“只读”的。
这有点像
df[(df.col1=='A') & (df.col2=='X')]['col2'] = 'Y'
失败的原因是相同的:不能修改 Dataframe df[(df.col1=='A') & (df.col2=='X')]['col2'],因为该 Dataframe 是df的一个切片。
你能做的是

df.loc[(df.col1=='A') & (df.col2=='X'), 'col2'] = 'Y'

相关问题