首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Pandas - update()创建“随机”值?

Pandas - update()创建“随机”值?
EN

Stack Overflow用户
提问于 2020-01-22 21:49:50
回答 2查看 47关注 0票数 4

因此,每当两个列ColAColB匹配时,我都会尝试用DF2中来自Date的值来更新DF1中的Date,如下所示:

DF1:

代码语言:javascript
运行
AI代码解释
复制
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:

代码语言:javascript
运行
AI代码解释
复制
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中的日期,我这样做了:

代码语言:javascript
运行
AI代码解释
复制
>>> 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的结果时,我得到的结果是:

代码语言:javascript
运行
AI代码解释
复制
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 

所以..。很明显,这一行到底是怎么回事:

代码语言:javascript
运行
AI代码解释
复制
    v    | p    | 4101580800000000000 

它根本不应该被更新,因为它只存在于DF1而不是DF2?这到底是怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-22 22:02:41

运行:

代码语言:javascript
运行
AI代码解释
复制
DF1['Date'] = DF1['Date'].apply(pd.to_datetime)
DF2['Date'] = DF2['Date'].apply(pd.to_datetime)

然后是update

票数 2
EN

Stack Overflow用户

发布于 2020-01-22 22:15:13

您可以在操作之前将日期转换为字符串:

代码语言:javascript
运行
AI代码解释
复制
DF1['Date'].strftime('%m/%d/%Y')
DF2['Date'].strftime('%m/%d/%Y')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59868755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档