首页 > 解决方案 > 需要根据单元格值更新 pandas 数据框行。此外,如果 2 行具有相同的单元格值,则只需更新第一行

问题描述

场景 1

数据框如下:

   AAA   BBB
0    A   100
1    B   100
2    C   100
3    D   100

设置 AAA = 'Z' 和 BBB = 200 其中 AAA = 'C'?

情景 2

数据框如下:

   AAA   BBB
0    A   100
1    B   100
2    C   100
3    B   100

设置 AAA = 'Z' 和 BBB = 200,其中 AAA = 'B' 但仅在 index = 1 的情况下?因此,如果多行符合“where”标准,则基本上仅在第一行中。

我的尝试

我尝试过这样的事情,它适用于场景 1,但我不知道如何做场景 2

df.iloc[ np.where( df_positions.AAA == 'C')[0]] = 'Z'

标签: pythonpandasnumpy

解决方案


在你的情况下

cond=(df.index==1)&df.AAA.eq('B')
df.loc[cond]=['Z',200]
df
  AAA  BBB
0   A  100
1   Z  200
2   C  100
3   B  100

推荐阅读