我试图找出多索引数据框中两个日期之间的差异,这是数据透视表操作的结果。
数据框包含三列。第一个是测量
,第二个是结束日期
,第三个是开始日期
。
我已经能够成功地将第三个多索引列添加到数据框中,但只能使结果到达单元格零
Pt["min"]["start_date"] = 0 但是当我尝试减去两个日期时,出现字符串错误并将 .Dt.Days
附加到每列结果的末尾也出现错误。
查找多索引 pandas 数据框中两个日期之间的天数差异的最简单方法是什么?
最佳答案
您可以通过元组
在列中选择Multiindex
并减去列:
print (df)
a
meas end start
0 7 2015-04-05 2015-04-01
1 8 2015-04-07 2015-04-02
2 9 2015-04-14 2015-04-04
#if dtypes not datetime
df[('a','end')] = pd.to_datetime(df[('a','end')])
df[('a','start')] = pd.to_datetime(df[('a','start')])
df[('a','diff')] = df[('a','end')] - df[('a','start')]
print (df)
a
meas end start diff
0 7 2015-04-05 2015-04-01 4 days
1 8 2015-04-07 2015-04-02 5 days
2 9 2015-04-14 2015-04-04 10 days
如果需要输出days
:
df[('a','diff')] = (df[('a','end')] - df[('a','start')]).dt.days
print (df)
a
meas end start diff
0 7 2015-04-05 2015-04-01 4
1 8 2015-04-07 2015-04-02 5
2 9 2015-04-14 2015-04-04 10
关于python - 查找 pandas 中两个日期之间差异的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38192080/