[英]Pandas: value_counts and cut with groupby multiindex
使用這樣的DataFrame:
time location
1 A
1 A
2 B
4 A
9 A
12 B
12 B
12 B
18 A
通過執行以下cut和value_counts操作,我可以得到一個時間段內出現次數的計數:
d = {'time': [1,1,2,4,9,12,12,12,18], 'location': ['A','A','B','A','A','B','B','B','A']}
df = pd.DataFrame(d)
time_bins = np.arange(0, 100, 10)
cut_frame = pd.cut(df.time, bins=time_bins)
counts = pd.value_counts(cut_frame,sort=False)
count_frame = pd.DataFrame(counts)
count_frame.index.name = 'time_window'
產生的DataFrame如下所示:
time_window time
(0, 10] 5
(10, 20] 4
如何通過location
系列進一步分解該類型,以便通過MultiIndex獲得類似信息?
location time_window
A (0, 10] 4
(10, 20] 1
B (0, 10] 1
(10, 20] 3
或這個?
time_window location time
(0, 10] A 4
(0, 10] B 1
(10, 20] A 1
(10, 20] B 3
您可以將cut_frame
附加到原始df
,然后應用groupby
:
df["time_window"] = cut_frame
df.groupby(["location", "time_window"]).count().dropna()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.