Python 熊猫-基于重叠时间段的分割数据集
我的报告时间段从周一开始,周日结束,持续5周。例如:Python 熊猫-基于重叠时间段的分割数据集,python,pandas,Python,Pandas,我的报告时间段从周一开始,周日结束,持续5周。例如: 11/20/2017 - 12/24/2017 = t1 11/27/2017 - 12/31/2017 = t2 我有一个由6个时段组成的数据帧(从2017年11月20日开始),我正试图使用LeaveDate列将每个时段分成6个数据帧。我的数据如下所示: Barcode LeaveDate ABC123 2017-11-22 ABC124 2017-12-04 ABC125 2017-12-15 当数据帧被分离时,一些
11/20/2017 - 12/24/2017 = t1
11/27/2017 - 12/31/2017 = t2
我有一个由6个时段组成的数据帧(从2017年11月20日开始),我正试图使用LeaveDate
列将每个时段分成6个数据帧。我的数据如下所示:
Barcode LeaveDate
ABC123 2017-11-22
ABC124 2017-12-04
ABC125 2017-12-15
当数据帧被分离时,一些条形码将分为多个周期-这没关系。我知道我能做到:
df['period'] = df['LeaveDate'].dt.to_period('M-SUN')
df['week'] = df['period'].dt.week
得到一周,但我不知道如何定义“多周”时期。问题还在于,条形码可能在多个时段内填满,因此需要将其输出到多个数据帧。有什么想法吗?谢谢 可能会有一个更简洁的解决方案,但这应该是可行的(将为您提供一个数据帧字典,每个周期一个):
df=pd.DataFrame(['ABC123','2017-11-22'],
[ABC124',2017-12-04'],
[ABC125',2017-12-15'],
列=['Barcode','LeaveDate'])
期间=[('2017-11-20','2017-12-24'),('2017-11-27','2017-12-31')]
结果={}
对于期间中的期间:
period_df=df[(df['LeaveDate']>=period[0])&(df['LeaveDate']使用{x:y代表x,y在df.groupby(pd.Grouper(key='LeaveDate',freq='W-MON'))中使用]
?很高兴它对你有用。刚刚意识到在上面的示例中,我忘记了定义我的空字典。现在将进行编辑,以防将来有人阅读,尽管看起来你已经完成了这部分。是的,我把它放进去了,但感谢你回来检查。嘿,@thesilkworm只是想知道,你怎么能返回ba检查数组格式的数据…x为2d数组,y为1d数组?…i
df = pd.DataFrame([['ABC123', '2017-11-22'],
['ABC124', '2017-12-04'],
['ABC125', '2017-12-15']],
columns=['Barcode', 'LeaveDate'])
periods = [('2017-11-20', '2017-12-24'), ('2017-11-27', '2017-12-31')]
results = {}
for period in periods:
period_df = df[(df['LeaveDate'] >= period[0]) & (df['LeaveDate'] <= period[1])]
results[period] = period_df