Python Pandas Period 日期差异在 * MonthEnds> 中,如何将其转换为 INT 值

标签 python pandas dataframe

我试图找到期间日期差异。 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/

相关文章:

python - pygame.错误: video system not initialized(pycharm)

python - 有什么方法可以覆盖 Python 的内置类吗?

python - 检查数字是否根据另一列连续?

python - 将 Pandas 中的单元格拆分为多行

python - 将 pandas 数据框列中的第一个字母大写,同时保留其他列

Pandas 返回包含字符串的单元格位置

python - 如何修复 "list indices must be integers or slices"错误

python - 如何减去文件中的两个单独的列

r - 计算每列 tidyverse 中的非零值

python - 替换大于 Pandas 数据框中数字的值