2016-12-07 120 views
1

我有一个由以下列组成的DataFrame:ActualDate,Brand,Likes和Comments。 ActualDate包含YYYY-MM-DD格式的日期值并且具有重复值。品牌是一个字符串,而喜欢和评论是整数值。我希望将这些数据汇总为每周和每月的格式,显示喜欢和评论的平均值。我尝试了下面的代码,但遇到了一些问题。请帮忙。熊猫:将DataFrame记录分组为每周和每月记录

df_output['ActualDate'] = pd.to_datetime(df_output['ActualDate']) 
print(df_output.head(30)) 
df_output_weekly = pd.DataFrame() 
df_output_weekly=df_output.reset_index().set_index('ActualDate').resample("W") 
df_output.set_index(df_output['ActualDate']) 
print(df_output_weekly.head()) 
+0

份额df_output.head() – Boud

回答

0

我想你需要添加mean

df_output['ActualDate'] = pd.to_datetime(df_output['ActualDate']) 

df_output_weekly= df_output.set_index('ActualDate').resample("W").mean().reset_index() 
print(df_output_weekly.head()) 

样品:

df_output = pd.DataFrame({'ActualDate':['2016-01-02','2016-01-03','2016-01-04'], 
          'Brand':['s','d','f'], 
          'Likes':[7,8,9], 
          'Comments':[7,8,9]}) 

print (df_output) 
    ActualDate Brand Comments Likes 
0 2016-01-02  s   7  7 
1 2016-01-03  d   8  8 
2 2016-01-04  f   9  9 

df_output['ActualDate'] = pd.to_datetime(df_output['ActualDate']) 

df_output_weekly= df_output.set_index('ActualDate').resample("W").mean().reset_index() 
print(df_output_weekly.head()) 
    ActualDate Comments Likes 
0 2016-01-03  7.5 7.5 
1 2016-01-10  9.0 9.0 
+0

感谢您的答复。我想到了下面,但你的建议似乎更优雅。谢谢! df_output_weekly = df_output.reset_index()。set_index('ActualDate')。resample(“W”)。agg({'Likes':np.mean,'Comments':np.mean}) – Srikanth