我正在探索共享單車資料。
我合并了兩個表:一個包含共享單車資料,另一個包含天氣資料。“開始日期”列位于共享單車資料中。“日期”列在天氣資料中。
我想對每小時的 ID 計數進行分組,這樣我就可以看到天氣對自行車使用的影響。
| ID | 開始 | 結尾 | 開始日期 | 期間 | 日期 | 雨 | 溫度 | wdsp |
|---|---|---|---|---|---|---|---|---|
| 1754125 | 艾爾廣場南 | 格列尼娜 | 2019 年 1 月 1 日 00:17 | 00:15:02 | 01-jan-2019 00:00 | 0.0 | 9.9 | 4.0 |
| 1754170 | 棕色門口 | 戈爾韋大學醫院 | 2019 年 1 月 1 日 07:55 | 00:04:57 | 01-jan-2019 01:00 | 0.0 | 9.3 | 4.0 |
| 1754209 | 新碼頭街 | 新碼頭街 | 2019 年 1 月 1 日 11:42 | 02:57:57 | 01-jan-2019 02:00 | 0.0 | 9.2 | 5.0 |
| 1754211 | 克拉達盆地 | 商門 | 2019 年 1 月 1 日 11:50 | 00:02:43 | 01-jan-2019 03:00 | 0.0 | 9.1 | 5.0 |
我試過了:
data.groupby(['date','ID']).size()
data.groupby(['date','ID']).size().reset_index(name='counts')
但我真的不知道我在做什么。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
我假設您希望能夠按 ID、日期和小時計算行數,因此您可以這樣做:
df['Date'] = df['Date Start'].dt.normalize()
df['hour'] = df['Date Start'].apply(lambda x: x.hour)
獲取日期和完整時間:
ID Start End Date Start \
0 1754125 Eyre Square South Glenina 2019-01-01 00:17:00
1 1754170 Brown Doorway University Hospital Galway 2019-01-01 07:55:00
2 1754209 New Dock Street New Dock Street 2019-01-01 11:42:00
3 1754211 Claddagh Basin Merchants Gate 2019-01-01 11:50:00
Duration date rain temp wdsp Date hour
0 00:15:02 2019-01-01 00:00 0.0 9.9 4.0 2019-01-01 0
1 00:04:57 2019-01-01 01:00 0.0 9.3 4.0 2019-01-01 7
2 02:57:57 2019-01-01 02:00 0.0 9.2 5.0 2019-01-01 11
3 00:02:43 2019-01-01 03:00 0.0 9.1 5.0 2019-01-01 11
然后使用 group by:
df.groupby(['ID','Date','hour']).size()
回傳
ID Date hour
1754125 2019-01-01 0 1
1754170 2019-01-01 7 1
1754209 2019-01-01 11 1
1754211 2019-01-01 11 1
dtype: int64
uj5u.com熱心網友回復:
我使用倫敦自行車騎行資料做了一個類似的專案。我在 csv 中 parse_dates 然后使用時間戳作為索引并檢索日期時間部分
df=pd.read_csv('london_merged.csv', parse_dates=['timestamp'], index_col="timestamp")
df['hour'] = df.index.hour
df['day_of_month'] = df.index.day
df['day_of_week'] = df.index.dayofweek
df['month'] = df.index.month
df['date']=df.index.date
print(df)
df.groupby(['ID','Date','hour']).size()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360276.html
標籤:熊猫 数据框 pandas-groupby 数据科学 等
