pandas - 熊猫创建一个基于月份和日期的新列?
问题描述
我有一个df
带有date
列的日期框:
date
2019-11-01
2019-11-02
2019-11-03
2019-11-04
2019-11-05
...
2021-04-01
. 我想创建一个新列is_in_period
,其值为True
是否date
位于(11-15)
明年(03-15)
。比如df[df.date==pd.Timestamp('2019-11-17')]['is_in_period'] = True
。
解决方案
首先通过方法将您的日期列转换为 datetime[ns] dtype to_datetime()
:
df['date']=pd.to_datetime(df['date'])
然后获取当前年份和下一年:
currentyear=df['date'].dt.year[0]
nextyear=currentyear+1
between()
现在通过方法创建一个布尔掩码:
mask=df['date'].between(str(currentyear)+'-11-17',str(nextyear)+'-03-15')
最后:
df['is_in_period']=mask
推荐阅读
- swiftui - swiftUI 中的 NavigationView 使用
- linux - linux中的问题发生了一个JNI错误linux
- python - Python PDF 提取格式化文本(粗体、删除线、斜体、下划线)
- java - 带有 Discord JDA 350+ 线程的 java.lang.OutOfMemoryError
- python - 数字评估问题python
- bigcommerce - BigCommerce 类别名称作为车把中的过滤器
- linux - 如何通过 `awk` 或 `sed` 在 Ubuntu 终端变量的末尾添加一些字符?
- firebase - Firebase 通过一个请求发送多个通知数据
- python - SQLAlchemy 计算非空字符串的数量
- python - 通过添加其他横截面将 pandas MultiIndex 的横截面设置为 DataFrame