Pandas Dataframe按周分组

时间:2016-11-10 10:15:50

标签: pandas dataframe

我有一个pandas Dataframe,其中包含一系列具有超过一年数据量的体育赛事。

我想在数据框中创建一个新列,' round'它每周递增一次,这样我就可以逐个处理更大的矩阵(固定装置)。

import pandas as pd
dta = pd.read_csv(...) #read data
indexedDta = dta.set_index(['Date']) #index the raw data.
indexedDta['Round'] = 0 #add in the new column and give dummy value.
indexedDta['Round']= indexedDta.groupby(by=dta.Date) #wrong

1 个答案:

答案 0 :(得分:0)

假设您只需要一个每周具有不同整数值的新列,按日期排序,但您不关心它们采用哪些值,您可以尝试:

import pandas


data = list(range(10))
dates = pandas.Series(pandas.date_range('2013-11-01', '2013-11-10'))

df = pandas.DataFrame({'dates': dates, 'data': data})
df = df.set_index('dates')

df['round'] = df.index.year * 100 + df.index.week

df

enter image description here

如果您希望将其逐渐递增1,可以添加:

df['round'] = df['round'].diff(1).fillna(1.)
df.loc[df['round'] != 0, 'round'] = 1.
df['round'] = df['round'].cumsum().astype(int)

df

enter image description here