gpt4 book ai didi

python - 更新 Pandas Dataframe 列 A 中的所有值,仅当 B 中的值不为零时才使用列 B 的值

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:05 26 4
gpt4 key购买 nike

我之前的代码用 A 中的值更新 B 中的所有值,其中 B 为零

dft = pd.DataFrame(
np.array([
['Unknown', 0], ['Unknown', 'CORP'], ['Unknown', 'GOVT'], ['Unknown', 0]
]), columns=['A', 'B']
)
print(dft)
mask = dft['B'] == '0'
dft.loc[mask, 'B'] = dft['A']

A B
0 Unknown 0
1 Unknown CORP
2 Unknown GOVT
3 Unknown 0

A B
0 Unknown Unknown
1 Unknown CORP
2 Unknown GOVT
3 Unknown Unknown

但我想做相反的事情,并用 B 中的所有非零值更新 A。我可以用 B 更新整个 A,但我想保留 A 中的现有值,因为替换为零没有帮助

期望的结果:

         A     B
0 Unknown 0
1 CORP CORP
2 GOVT GOVT
3 Unknown 0

最佳答案

使用DataFrame.where .替换列:

dft = dft.where(dft['B'] == '0', dft.B, axis=0)
print (dft)
A B
0 Unknown 0
1 CORP CORP
2 GOVT GOVT
3 Unknown 0

但是,仅替换 A 列:

dft['A'] = dft['A'].where(dft['B'] == '0', dft.B)
#dft.loc[dft['B'] !='0','A'] = dft['B']

print (dft)
A B
0 Unknown 0
1 CORP CORP
2 GOVT GOVT
3 Unknown 0

关于python - 更新 Pandas Dataframe 列 A 中的所有值,仅当 B 中的值不为零时才使用列 B 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55298587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com