我的开始时间:
A B C D
A1 1 0 True
A2 1 0 False
A3 1 0 True
输出(不再需要D列):
A B C
A1 2 0
A2 1 1
A3 2 0
因此,对于df中的每一行,如果D中有True,则将B的值增加1,否则将C的值增加1。
答案 0 :(得分:1)
您可以使用https://stackoverflow.com/users/5216668/will-barnwell创建新的df
并添加到原始的子集:
df[['B','C']] = df[['B','C']] + pd.concat([df['D'], ~df['D']], 1, keys=['B','C'])
print (df)
A B C D
0 A1 2 0 True
1 A2 1 1 False
2 A3 2 0 True
或使用loc
:
df.loc[df['D'], 'B'] += 1
df.loc[~df['D'], 'C'] += 1
print (df)
A B C D
0 A1 2 0 True
1 A2 1 1 False
2 A3 2 0 True
df['B'] = df['B'] + df['D']
df['C'] = df['C'] + (~df['D'])
print (df)
A B C D
0 A1 2 0 True
1 A2 1 1 False
2 A3 2 0 True
上次删除列:
df = df.drop('D', axis=1)
print (df)
A B C
0 A1 2 0
1 A2 1 1
2 A3 2 0