簡體   English   中英

Groupby 具有多列,然后為 top N 創建 plot

[英]Groupby with multiple columns and then create plot for top N

我有一個數據集,我使用 2 列進行分組。 現在我想 plot 基於 1 列的前 N 圖表。 為了更好地解釋它,下面是示例數據集。 該數據集是使用 groupby 從主數據集創建的

數據1 數據2 價值
一個 X 6
一個 是的 7
一個 z 8
是的 3
z 4
5
C X 6
C 是的 7
C v 8
D v 4
D 是的 5
D z 7
8
7
X 6
F s 4
F s 5
F r 6

現在我只想要前 3 個數據 1 來創建新數據集和 plot seaborn 圖。 下面是願望結果。

數據1 數據2 價值
一個 X 6
一個 是的 7
一個 z 8
是的 3
z 4
5
C X 6
C 是的 7
C v 8

IIUC,你要保留前 N 組 Data1 嗎?

您可以使用unique並對其進行切片以按順序獲取前 N 組,然后使用boolean 索引

N = 3
out = df[df['Data1'].isin(df['Data1'].unique()[:N])]

groupby上使用itertools.islicepandas.concat的其他選項(效率較低):

from itertools import islice
out = pd.concat([g for _,g in islice(df.groupby('Data1'), 3)])

output:

  Data1 Data2  Value
0     A     x      6
1     A     y      7
2     A     z      8
3     B     y      3
4     B     z      4
5     B     u      5
6     C     x      6
7     C     y      7
8     C     v      8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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