2016-11-10 207 views
0

我有一個熊貓數據框,其中包含一系列具有超過一年的數據的體育賽事的固定裝置。熊貓數據框按分組

我想在數據框中創建一個新的列,'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 
+0

您是否需要該列在每個新周(即:...... ... 4,5,6 ......)或每次增加1時增加1(即:...... ... 4, 8,11 ...')? – Peque

+0

理想地增加1 – Mdev

回答

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遞增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