gpt4 book ai didi

python - 如何动态更新 Pandas DataFrame 中的值

转载 作者:行者123 更新时间:2023-12-01 00:50:00 29 4
gpt4 key购买 nike

感谢您看我的问题!我正在尝试使用 DataFrame 中已存在的值动态更新 Pandas DataFrame 中的某些值。

我知道我可以使用 loc 方法进行查找并将找到的值更新为静态值。例如:

import pandas as pd

customers = pd.DataFrame({'id': [1, 2, 3],
'name': ['foo', 'bar', 'foo'],
'balance': [100, 200, -300]})

customers.loc[(customers['name']=='foo') & (customers['id']==3), ['balance']] = 300

print(customers)
# {'id': [1, 2, 3], 'name': ['foo', 'bar', 'foo'], 'balance': [100, 200, 300]}

但我正在尝试使用 DataFrame 中已存在的值动态更新该值,例如:

customers = pd.DataFrame({'id': [1, 2, 3],
'name': ['foo', 'bar', 'foo'],
'balance': [100, 200, -300]})


customers.loc[(customers['name']=='foo') & (customers['id']==1), ['balance']] = #abs('balance')

我希望这会将 loc 查询中的所有值更新为正整数。当然,这是一个简单的例子,只有一个匹配:)

有没有办法像这样动态访问/更新 Pandas DataFrame 中的值?谢谢!

最佳答案

pandasindex 敏感,因此当您分配值时,隐藏键是 index ,它将匹配 index ,这样您只需应用一次条件。

customers.loc[(customers['name']=='foo') & (customers['id']==1), ['balance']] =customers.balance.abs()
customers
Out[112]:
balance id name
0 100 1 foo
1 200 2 bar
2 300 3 foo

关于python - 如何动态更新 Pandas DataFrame 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56640928/

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