所以我有一個CSV,其中的資料看起來像:
機器名 時間戳
洗衣機 #25 2021-08-22 06:07:21
洗衣機 #2 2021-08-22 06:35:15
烘干機 #34 2021-08-22 17:05:55
... ...
烘干機 #29 2021-08-28 05:17:12
CSV本身跨越了一個星期,從星期天到星期六,長度超過1300行。我正試圖計算每天每小時使用多少次機器。因此,在上面的例子中,我的輸出將看起來像
2021-08-22: 0600, Machine Count: 2 2 2 2
2021-08-22: 1700, Machine Count: 1: 1.
2021-08-23: 0500, 機器數量。1: 0500, 機器計數: 1.
它使用軍事時間,所以0000-2359
目前我正在使用Pandas,并且已經打開并讀取了我的CSV,從時間戳列中抓取了小時和日期。我將小時作為一個新的列重新添加到資料框架的末尾,因此09:45:16的時間戳將被添加為9。這是我在實驗時做的,可以取出來。 目前的代碼是:csv = PATHTOCSV
df = pd.read_csv(csv)
hourHolder = (pd.to_datetime(df['timestamp']).dt.hour)
dateHolder = pd.to_datetime(df['Timestamp']).dt.date
df['Hour'] = hourHolder
fullDictionary = df.to_dict('Records)
我已經嘗試了各種方法,使用回圈,并試圖使用df.groupby(pd.Grouper(key='Timestamp', freq='H')).count()直接查詢資料
然而,這給出了一個錯誤:
。
TypeError: 只對DatetimeIndex, TimedeltaIndex或 PeriodIndex,但得到了一個'Index'的實體
uj5u.com熱心網友回復:
將datetime列改為小時、groupby和count。
s = ""機器名稱,時間戳 洗衣機#25,2021-08-22 06:07:21 2號洗衣機,2021-08-22 06:35:15 烘干機 #34,2021-08-22 17:05:55 烘干機#29,2021-08-28 05:17:12"" df = pd.read_csv(StringIO(s)) df['Timestamp'] = pd.to_datetime(df['Timestamp'] ) df.groupby(df['Timestamp'].dt.floor('h')) ['Machine Name'].count() 時間戳 2021-08-22 06:00: 00 2 2021-08-22 17:00:00 1 2021-08-28 05:00: 00 1 名稱。機器名稱, dtype: int64轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/332409.html
標籤:
下一篇:合并兩個資料幀,同時向前尋找
