熊猫在月底前的天

时间:2019-12-02 10:07:08

标签: python pandas

我想从表示日期的字符串列中获取月末之前的天数。 我有以下熊猫数据框:

df = pd.DataFrame({'date':['2019-11-22','2019-11-08','2019-11-30']})
df

         date
0  2019-11-22
1  2019-11-08
2  2019-11-30

我想要以下输出:

 df
         date  days_end_month
0  2019-11-22               8
1  2019-11-08              22
2  2019-11-30               0

带有pd.tseries.MonthEnd的{​​{1}}包似乎是一个不错的选择,但我不知道如何使用它来转换整个列。

1 个答案:

答案 0 :(得分:1)

减去Series.dt.daysinmonth创建的月份中的所有天以及Series.dt.day提取的日期:

df['date'] = pd.to_datetime(df['date'])

df['days_end_month'] = df['date'].dt.daysinmonth - df['date'].dt.day

或使用offsets.MonthEnd,减去时间增量并将Series.dt.days转换为天数:

df['days_end_month'] = (df['date'] + pd.offsets.MonthEnd(0) - df['date']).dt.days

print (df)
        date  days_end_month
0 2019-11-22               8
1 2019-11-08              22
2 2019-11-30               0