如果日期介于日期字段中的日期之间,如何检查日期属于哪个类别?我不能使用 merge_asof
作为作品; pandas
只有 v0.18。
d = {'buckets': ['1D', '1W', '1M'], 'dates': ['03-05-2018', '10-05-2018', '03-06-2018']}
date_buckets = pd.DataFrame(data=d)
buckets dates
0 1D 03-05-2018
1 1W 10-05-2018
2 1M 03-06-2018
因此,例如,如果给定日期 07-05-2018,我如何返回 1W?我需要对数百行执行此操作,因此需要高效。
谢谢,
最佳答案
您可以使用 pandas.cut
对于装箱值:
import pandas as pd
d = {'buckets': ['1D', '1W', '1M'],
'dates': ['03-05-2018', '10-05-2018', '03-06-2018']}
df_bin = pd.DataFrame(data=d)
df_bin['dates'] = pd.to_datetime(df_bin['dates'], dayfirst=True)\
.dt.strftime('%Y%m%d').astype(int)
df = pd.DataFrame({'date': ['07-05-2018']})
df['date'] = pd.to_datetime(df['date'], dayfirst=True)\
.dt.strftime('%Y%m%d').astype(int)
df['Tenor'] = pd.cut(df['date'],
bins=df_bin['dates'],
labels=df_bin['buckets'].iloc[1:])
print(df)
date Tenor
0 20180507 1W
关于python - 分桶日期并检查是否在 Pandas 的日期范围之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50159602/