簡體   English   中英

按Pandas中的數據框分組,列中包含常用值

[英]Group by a dataframe in Pandas with common values across columns

我在Pandas中有一個數據幀,例如:

Col1 Col2 Col3
A    B    10/10/2016
B    A    09/12/2016
A    C    08/11/2016

我想為Col1和Col2中的每個唯一條目獲取他們的Col3值。 問題是用戶可以在Col1或Col2中,因此組合Col1將錯過B-A線。

有關如何實現它的任何想法?

提前謝謝了!

你可以:

df.set_index(['Col3']).stack().reset_index(-1, drop=True)

要得到:

Col3
10/10/2016    A
10/10/2016    B
09/12/2016    B
09/12/2016    A
08/11/2016    A
08/11/2016    C

您可以進一步處理,例如使用(假設上面已分配給result

result.groupby(result.values).apply(lambda x: x.index.tolist())

A    [10/10/2016, 09/12/2016, 08/11/2016]
B                [10/10/2016, 09/12/2016]
C                            [08/11/2016]

或者,您可以使用pd.melt

pd.melt(df, value_vars=['Col1', 'Col2'], id_vars='Col3')

         Col3 variable value
0  10/10/2016     Col1     A
1  09/12/2016     Col1     B
2  08/11/2016     Col1     A
3  10/10/2016     Col2     B
4  09/12/2016     Col2     A
5  08/11/2016     Col2     C

也可以看看:

df.set_index(['Col3']).stack().reset_index()

         Col3 level_1  0
0  10/10/2016    Col1  A
1  10/10/2016    Col2  B
2  09/12/2016    Col1  B
3  09/12/2016    Col2  A
4  08/11/2016    Col1  A
5  08/11/2016    Col2  C

暫無
暫無

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

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