[英]How to count frequencies per datetime and category in python
我有以下問題。
df_dict = {"uziv_id" : [1, 1, 2, 3], "datetime" : ["2022-09-05 07:25:12", "2022-09-05 07:25:52", "2022-09-05 07:42:12", "2022-09-05 07:43:12"],
"expedice" : ["A", "A", "B", "A"]}
df = pd.DataFrame(df_dict)
我需要每 10 分鍾間隔和每個 expedice 計算expedice
。 我試試這個:
df["time"] = pd.to_datetime(df["datetime"])
df = (
df.groupby(pd.Grouper(freq="10Min", key="time"), "exp")["uziv_id"]
.nunique()
.reset_index(name="count")
)
df = df.rename(columns={"time": "interval start"})
df.insert(1, "interval end", df["interval start"] + pd.Timedelta("10Min"))
但我得到一個錯誤ValueError: No axis named exp for object type DataFrame
。 請問我做錯了什么?
在groupby
中使用 list []
:
df["time"] = pd.to_datetime(df["datetime"])
df = (
df.groupby([pd.Grouper(freq="10Min", key="time"), "expedice"])["uziv_id"]
.nunique()
.reset_index(name="count")
)
df = df.rename(columns={"time": "interval start"})
df.insert(1, "interval end", df["interval start"] + pd.Timedelta("10Min"))
print (df)
interval start interval end expedice count
0 2022-09-05 07:20:00 2022-09-05 07:30:00 A 1
1 2022-09-05 07:40:00 2022-09-05 07:50:00 A 1
2 2022-09-05 07:40:00 2022-09-05 07:50:00 B 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.