2016-12-07 5 views
1

Ich habe einen DataFrame, der aus den folgenden Spalten besteht: ActualDate, Brand, Likes und Comments. ActualDate enthält Datumswerte im Format JJJJ-MM-TT und doppelte Werte. Marke ist eine Zeichenfolge, während Likes und Kommentare ganzzahlige Werte sind. Ich möchte diese Daten in wöchentlichen und monatlichen Formaten zusammenfassen, die den Durchschnitt für Likes und Kommentare anzeigen. Ich habe den folgenden Code ausprobiert, sah sich aber einigen Problemen gegenüber. Bitte helfen Sie.Pandas: Gruppieren von Dataframe-Datensätzen in wöchentlichen und monatlichen Datensätzen

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

share df_output.head() – Boud

Antwort

0

Ich glaube, Sie hinzufügen müssen 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()) 

Probe:

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

Vielen Dank für Ihre Antwort. Ich kam auf die unten, aber Ihr Vorschlag scheint eleganter. Vielen Dank! df_output_weekly = df_output.reset_index(). Set_index ('ActualDate'). Resample ("W"). Agg ({'Gefällt mir': np.mean, 'Kommentare': np.mean}) – Srikanth

Verwandte Themen