gpt4 book ai didi

python - Pandas - update() 创建 "random"值?

转载 作者:行者123 更新时间:2023-12-02 05:48:25 25 4
gpt4 key购买 nike

因此,每当两个时,我尝试使用 DF2 中的 Date 的值更新 DF1 中的 DateColAColB 匹配,如下所示:

DF1:

ColA | ColB | Date 
a | b | 12/22/2099
a | s | 12/22/2099
v | p | 12/22/2099
v | s | 12/22/2099
m | p | 12/22/2099

DF1 = pd.DataFrame( { 'ColA': ['a','a','v','v','m'], 'ColB': ['b','s','p','s','p'], 'Date': ['12/22/2099','12/22/2099','12/22/2099','12/22/2099','12/22/2099'] } )

DF2:

ColA | ColB | Date 
a | b | 9/11/2022
a | s | 9/11/2022
v | s | 10/9/2022
m | p | 9/25/2022

DF2 = pd.DataFrame( { 'ColA': ['a','a','v','m'], 'ColB': ['b','s','s','p'], 'Date': ['9/11/2022','9/11/2022','10/9/2022','9/25/2022'] } )

为了更新 DF1 中的日期,我做了:

>>> DF1.set_index(['ColA','ColB'], inplace=True)
>>> DF1.update(DF2.set_index(['ColA','ColB']))
>>> DF1.reset_index(inplace=True) # to recover the initial structure

但是当我打印显示 DF1 的结果时,我得到:

ColA | ColB | Date 
a | b | 9/11/2022
a | s | 9/11/2022
v | s | 10/09/2022
v | p | 4101580800000000000
m | p | 9/25/2022

所以..显然这一行发生了什么:

    v    | p    | 4101580800000000000 

它根本不应该更新,因为它只存在于 DF1 而不是 DF2 中?这里可能发生了什么?

最佳答案

运行:

DF1['Date'] = DF1['Date'].apply(pd.to_datetime)
DF2['Date'] = DF2['Date'].apply(pd.to_datetime)

然后更新

关于python - Pandas - update() 创建 "random"值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59868755/

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