gpt4 book ai didi

python - 如何使用 pandas 根据另一个数据帧的列的值更新列的值?

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

我有一个数据框:

import pandas as pd 
df1 = pd.DataFrame([['Tom', 'good', 3],
['Jack', 'bad', 6],
['Tom', 'average', 9],
['Jerry', 'good', 89],
['Lucy', 'average', 11]
],
columns=['name', 'text', 'day'])

和其他数据框:

df2 = pd.DataFrame([['Tom', 'bad', 55],
['Jack', 'good', 64],
['Mary', 'bad', 92],
['Lucy', 'average', 109]
],
columns=['name', 'text', 'day'])

如果df2['name']位于df1['name'] ,然后是 ' day 的值' 的 df1应替换为 df2 ,这意味着,我得到以下结果:

result = pd.DataFrame([['Tom', 'good', 55],
['Jack', 'bad', 64],
['Tom', 'average', 55],
['Jerry', 'good', 89],
['Lucy', 'average', 109]
],
columns=['name', 'text', 'day'])

我知道update可以做到这一点,但我想要一个条件替换方法。

最佳答案

只需执行np.where

df1['day'] = np.where(df1['name'].isin(df2['name']), df1['name'].map(df2.set_index('name')['day']),df1['day'])
df1
Out[263]:
name text day
0 Tom good 55.0
1 Jack bad 64.0
2 Tom average 55.0
3 Jerry good 89.0
4 Lucy average 109.0

关于python - 如何使用 pandas 根据另一个数据帧的列的值更新列的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73623428/

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