gpt4 book ai didi

python - pandas 在尝试获取 timedelta 对象天数时将 NaT 替换为列中的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:41 25 4
gpt4 key购买 nike

我有以下df ,

A         B
3 days NaT
NaT 1 days
4 days 3 days
NaT NaT

dtypeABtimedelta64[ns] ,我想得到 days来自每个timedelta两列,所以首先我尝试使用 A 删除所有行和B碰巧都是NaT ,

daydelta = df.dropna(subset=['A', 'B'], how='all')

然后得到days在每列值上,

daydelta[['A', 'B']] = daydelta[['A', 'B']].applymap(lambda x: int(Timedelta(x).days))

但它失败了,因为没有days NaT 中的属性。我想知道如何获取days来自timedelta值,同时替换 NaT带有字符串 timedelta value does not exist

最佳答案

使用dt.days它也可以与 NaT 一起使用:

print (df['A'].dt.days)
0 3.0
1 NaN
2 4.0
3 NaN
Name: A, dtype: float64

df[['A', 'B']] = df[['A', 'B']].apply(lambda x: x.dt.days)
print (df)
A B
0 3.0 NaN
1 NaN 1.0
2 4.0 3.0
3 NaN NaN

关于python - pandas 在尝试获取 timedelta 对象天数时将 NaT 替换为列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48520478/

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