gpt4 book ai didi

Python/Pandas/Dataframe/计算日期差异

转载 作者:行者123 更新时间:2023-12-01 09:21:41 25 4
gpt4 key购买 nike

我有一个数据框,我正在执行以下操作:

def calculate_planungsphase(audit, phase1, phase2):

datum_first_milestone = data_audit[(data_audit.Audit == audit) & (data_audit.Meilenstein == phase1)]
datum_second_milestone = data_audit[(data_audit.Audit == audit) & (data_audit.Meilenstein == phase2)]

print(datum_first_milestone['GeplantesErledigungsdatum'])
print(datum_second_milestone['GeplantesErledigungsdatum'])

print(datum_first_milestone['GeplantesErledigungsdatum'] - datum_second_milestone['GeplantesErledigungsdatum'])

print(datum_first_milestone['GeplantesErledigungsdatum']) = 的结果

2018-01-01名称:GeplantesErledigungsdatum,dtype:datetime64[ns]

print(datum_second_milestone['GeplantesErledigungsdatum']) = 的结果

2018-01-02 名称:GeplantesErledigungsdatum,数据类型:datetime64[ns]

差值计算结果为:

0 NaT1 钠盐名称:GeplantesErledigungsdatum,dtype:timedelta64[ns

为什么计算结果是NaT?当我只进行一项计算时,为什么会得到两个结果? (索引 0 和索引 1 = NaT)

感谢您的帮助!

最佳答案

存在不同索引值的问题,因此在减法中Series未对齐。

如果两个过滤的Series大小相同,可能的解决方案是创建相同的索引值:

datum_first_milestone.index = datum_second_milestone.index

如果需要仅通过 loc + 列名称 过滤列,解决方案也应该简化:

datum_first_milestone = data_audit.loc[(data_audit.Audit == audit) & (data_audit.Meilenstein == phase1), 'GeplantesErledigungsdatum']
datum_second_milestone = data_audit.loc[(data_audit.Audit == audit) & (data_audit.Meilenstein == phase2), 'GeplantesErledigungsdatum']

print(datum_first_milestone)
print(datum_second_milestone)

如果总是返回一个值 Series.item返回标量:

print (datum_first_milestone.item() - datum_second_milestone.item())

更一般的是,如果有一个或多个值,可以选择标量的第一个值:

print (datum_first_milestone.iat[0] - datum_second_milestone.iat[0])

关于Python/Pandas/Dataframe/计算日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50759380/

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