Python 如何通过索引基于另一列更改一列的值
我有一个数据框,它有两列:Python 如何通过索引基于另一列更改一列的值,python,pandas,Python,Pandas,我有一个数据框,它有两列: A B 0 0 0 1 0 0 0 0 0 0 0 1 我想有一些代码来检查B列,当找到a 1时,该索引中a列的值会像这样更改为1 A B 0 0 1 1 1 0 1 0 1 0 1 1 我的代码是这样的,但它不是我想要的: df['A']= np.where(df['B'] == 1,df['A'], '1') 你可以做: df.loc[df['B'].idxmax():,
A B
0 0
0 1
0 0
0 0
0 0
0 1
我想有一些代码来检查B列,当找到a 1时,该索引中a列的值会像这样更改为1
A B
0 0
1 1
1 0
1 0
1 0
1 1
我的代码是这样的,但它不是我想要的:
df['A']= np.where(df['B'] == 1,df['A'], '1')
你可以做:
df.loc[df['B'].idxmax():, 'A'] = 1
print(df)
输出
A B
0 0 0
1 1 1
2 1 0
3 1 0
4 1 0
5 1 1
如果要使用np.where,请执行以下操作:
df['A'] = np.where(df.index < df['B'].idxmax(), df['A'], 1)
print(df)
让我们试试
cummax
df['A']=df.B.cummax()
df
Out[302]:
A B
0 0 0
1 1 1
2 1 0
3 1 0
4 1 0
5 1 1
df['A']=df.B.cummax()
df
Out[302]:
A B
0 0 0
1 1 1
2 1 0
3 1 0
4 1 0
5 1 1