簡體   English   中英

在pandas中分組數據幀?

[英]Grouping dataframes in pandas?

我對python pandas和使用數據幀很新。 可以說我的數據框如下所示:

A B C

3 2 3
4 2 4
3 2 1 
5 6 6

我想找到數據框中有多少行在A和B列中具有相同的值,對於這些行,我想存儲C值。 因此,例如在此數據框中,我想存儲第1和第3個C值,因為每個行中的A和B具有相同的值。 基本上我想要一種打印類似的方法:“對於A = 3和B = 2,可能的C值是:3,1”並找到這些對。 我遵循官方的熊貓文檔,但我似乎無法找到這個。

不確定我是否遵循,但這可能會讓你去:

df = DataFrame({"a": [3,4,3,5], "b":[2,2,2,6], "c": [3,4,1,6]})
In [38]: for i, g in df.groupby(("a", "b")):
             print  i, g["c"].values
         ....:
(3, 2) [3 1]
(4, 2) [4]
(5, 6) [6]

你可以試試這個:

In [187]: df
Out[187]: 
   A  B  C
0  3  2  3
1  4  2  4
2  3  2  1
3  5  6  6

In [188]: df[df.groupby(['A', 'B']).transform(np.count_nonzero).C>=2]
Out[188]: 
   A  B  C
0  3  2  3
2  3  2  1
Name: C, dtype: float64

您可以使用unique SeriesGroupBy方法

In [11]: df.groupby(["A", "B"])["C"].unique()
Out[11]:
A  B
3  2    [3, 1]
4  2       [4]
5  6       [6]
Name: C, dtype: object

另請參閱nunique以獲取唯一元素的數量。

暫無
暫無

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

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