簡體   English   中英

熊貓:value_counts,並使用groupby multiindex進行剪切

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM