我试图找到期间日期差异。 Per Pandas 0.24+:从另一个周期减去一个周期将给出一个 DateOffset。而不是整数(GH21314)。但是如何获得INT结果。我查看了类似的查询:Why can't I subtract one date period from the next and convert to an integer?
它说添加“.n”会给出结果,但这对我不起作用。
我还尝试使用 .astype(int) 将两者都转换为 INT,但得到错误:'Period' 对象没有属性 'astype'。我一定是遗漏了什么,不知道是什么!
我正在使用 Pandas 版本:'1.0.1'。
DDL生成数据帧:
import pandas as pd
date_start = pd.Period('10/2018',freq='M')
df = pd.DataFrame({'id': [1, 2, 3, 4, 5, 6],
'date_end': ['2017-01', '2018-08', '2019-04','2018-06',
'2018-12', '2018-10']})
df['date_end'] = pd.PeriodIndex(pd.to_datetime(df['date_end'], format='%Y-%m'),
freq='M')
df['diff'] = date_start - df['date_end']
谢谢!
最佳答案
您需要访问个人Period[M]
对象,而不是系列:
df['diff'].n
AttributeError: 'Series' object has no attribute 'n'
df['diff'].apply(lambda x: x.n)
0 21
1 2
2 -6
3 4
4 -2
5 0
关于Python Pandas Period 日期差异在 * MonthEnds> 中,如何将其转换为 INT 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62088552/