繁体   English   中英

pandas dataframe 中 datetime.index 列中两个连续日期之间的天数差异

[英]Days Difference between two consecutive Dates in datetime.index column in pandas dataframe

下面是我的 Dataframe df ,其中包含日期时间索引。

              Open        High        Low        Close         Volume   Currency
Date                        
2021-04-20  14526.70    14526.95    14207.30    14296.40    456704720896    INR
2021-04-22  14219.15    14424.75    14151.40    14406.15    516985257984    INR
2021-04-23  14326.35    14461.15    14273.30    14341.35    476613607424    INR
2021-04-26  14449.45    14557.50    14421.30    14485.00    448533331968    INR
2021-04-27  14493.80    14667.55    14484.85    14653.05    442211696640    INR
... ... ... ... ... ... ...
2022-04-19  17258.95    17275.65    16824.70    16958.65    401400000   INR
2022-04-20  17045.25    17186.90    16978.95    17136.55    286070016   INR
2022-04-21  17234.60    17414.70    17215.50    17392.60    285200000   INR
2022-04-22  17242.75    17315.30    17149.20    17171.95    262740000   INR
2022-04-25  17006.10    17052.10    16889.75    16953.95    275571  INR

我想计算 datetime.index 列中两个连续“日期”之间的差异。

我尝试使用下面的代码,但如果两个日期之间的差异很大,它就不起作用。

代码:

df['date'] = df.index.day  #Extract day from datetime.index
df['difference'] = df['date'].diff()
df

Output

             Open       High        Low          Close     Volume   Currency    date    difference
Date                                
2021-04-20  14526.70    14526.95    14207.30    14296.40    456704720896    INR 20  NaN
2021-04-22  14219.15    14424.75    14151.40    14406.15    516985257984    INR 22  2.0
2021-04-23  14326.35    14461.15    14273.30    14341.35    476613607424    INR 23  1.0
2021-04-26  14449.45    14557.50    14421.30    14485.00    448533331968    INR 26  3.0
2021-04-27  14493.80    14667.55    14484.85    14653.05    442211696640    INR 27  1.0
... ... ... ... ... ... ... ... ...
2022-04-19  17258.95    17275.65    16824.70    16958.65    401400000   INR 19  1.0
2022-04-20  17045.25    17186.90    16978.95    17136.55    286070016   INR 20  1.0
2022-04-21  17234.60    17414.70    17215.50    17392.60    285200000   INR 21  1.0
2022-04-22  17242.75    17315.30    17149.20    17171.95    262740000   INR 22  1.0
2022-04-25  17006.10    17052.10    16889.75    16953.95    275571  INR 25  3.0
252 rows × 8 columns

请让我知道计算 pandas 中连续两行之间的天数差异的解决方案

如果需要计算每个Currency的值,请使用DataFrameGroupBy.diff

df['difference'] = df.index.to_series().groupby(df['Currency']).diff().dt.days

如果需要没有组使用Series.diff

df['difference'] = df.index.to_series().diff().dt.days

对于 Currency 设置的计数值,您需要使用 groupby

df['difference'] = df.index.to_series().groupby(df['Currency']).diff().dt.days

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM