我必須使用python,pandas和numpy處理大型.csv文件,下面是一個來自更細粒度數據集(A)的示例,時間標記是在15分鐘的間隔:如何在python3「水平聯合」中加入兩個pandas DataFrames
Timestamp,Real Energy Into the Load
2016-06-01T11:00:00, 2
2016-06-01T10:45:00, 1
2016-06-01T10:30:00, 5
2016-06-01T10:15:00, 3
2016-06-01T10:00:00, 3
2016-06-01T09:45:00, 6
2016-06-01T09:30:00, 2
...
,這裏是從與時間戳分開設置約一小時的較少的顆粒數據(B)的樣品,但有很多的時間標記之間的差異。
TimeEDT, TemperatureF, Dew PointF
2016-06-01T10:33:00,82.0,66.0
2016-06-01T09:34:00,79.0,64.9
2016-06-01T09:20:00,75.9,64.9
...
我想通過分組從數據幀A的行平均值來將它們組合起來,使得合併後的數據幀將具有相同的行數作爲數據幀B的。最後一行對應於:
TimeEDT, TemperatureF, Dew PointF, Real Energy Into The Load
2016-06-01T10:33:00,82.0,66.0, 1.5 # average of (1, 2)
2016-06-01T09:34:00,79.0,64.9, 4.25 # average of (6, 3, 3, 5)
2016-06-01T09:20:00,75.9,64.9, 2 # average of (2,)
...
我認爲這在SQL中被稱爲水平聯合。
我已經嘗試過的東西: 我拿了數據集B(dfB)並使用dfB['TimeEDT'].apply
來將每個日期「落地」到它的15分鐘小時間隔。從那裏,我可以使用groupby
函數將行總計在一起,至少在行之間具有一對一的對應關係,但是我仍然需要水平添加數據幀。但我想有一個更直接的方式來做到這一點。理想情況下,groupby的參數可以是一些用戶定義的比較
查看問題編輯 – nteiss
查找pandas groupby。 .mean() – Merlin
重命名這兩列 - 最好不要有空格。 – Merlin