如何在DataFrame中将值从列移动到列,以便在1天内平均移动值?

时间:2016-07-19 05:43:52

标签: python pandas

有一个包含StartQTR, EndQTR, DAteZ列的数据框,需要做的是第一对StartQTR,EndQTR我们有非零Z值,我们需要创建新列Z1,我们将Z的值移到Z1,差异为一天。

例如像这里

enter image description here

df = pd.read_csv(......)

df['DATE']= pd.to_datetime(df['DATE'])
df.set_index('DATE', inplace=True)

df1 = (df.groupby('START')['HH_F'].shift(freq='1D',periods=1).reset_index()) 
df2 =(pd.merge(df.reset_index(),df1, on=['START','DATE'],          how='left', suffixes=('','1')))
mask = df2.START.duplicated(keep=False)
df2.ix[mask, 'Z1'] = df2.ix[mask, 'Z1'].fillna(0)
print (df2)


----------
START       END            DATE       Z       Z1

21600000    22499000    2012-10-01  0

22500000    23399000    2012-10-01  0   
23400000    24299000    2012-10-01  0   
23400000    24299000    2012-10-01  0   
24300000    25199000    2012-10-01  0   
25200000    26099000    2012-10-01  110412  0


26100000    26999000    2012-10-01  110412  
25200000    26099000    2012-10-02  155886  110412

27900000    28799000    2012-10-02  155886  
28800000    29699000    2012-10-03  160687  

25200000    26099000    2012-10-03  160687  155886

0 个答案:

没有答案