簡體   English   中英

對具有相同列,不同順序的三個按組分組結果數據幀執行聯合

[英]Performing union on three Group by Resultant dataframes with same columns, different order

我通過在使用A,B,C列的三個不同數據上應用Group By創建了三個不同的熊貓數據框。

Resultdf=SessionDev.query(AppDetails).filter(text(" A in ('20170727L00319')")).all()

df1= Resultdf.groupby(["A", "B","C"]).size().reset_index(name='Count')

[DF1]

    A              |      B           | C  |Count

0 | 20170727L00319  |      423605030008907  |   319     |   1

1 | 20170727L00319   |     42360604002461     | 319   |   1

[DF2]

   A               |     B            |  C  |  Count

0 | 20170727L00319   |   423605030008907   |  319   |   2

1 | 20170727L00319   |   423606040002461   |  319    |  2

[DF3]

    A              |     B            |  C  | Count

0 | 20170727L00319   |   423605030008907   |  319  |    1

1 | 20170727L00319   |   423606040002461   |  319  |    2

我想對上述三個分組數據框結果執行聯合(不包括重復),將結果合並為具有不同結果的單個數據框

我試圖連接這三個不同的數據框,然后使用drop_duplicates刪除重復的數據,但是我找不到任何結果

A                  |    B             | C

0 | 20170727L00319  |  423605030008907  |  319

1 | 20170727L00319  |  423606040002461  |  319

2 | 20170727L00319  |  423605030008907  |  319

3 | 20170727L00319  |  42360604002461   |  319

5 | 20170727L00319  |  423606040002461  |  319

運用

FinalUnion=pd.concat([df1,df2,df3],ignore_index=True,join_axes=[df1.drop(['Count'],axis=1)

FinalUnion.drop_duplicates(['B','C'], keep='first')

我期望的結果如下

         A             |    B             |   C

0 | 20170727L00319  |  423605030008907  |  319

1 | 20170727L00319  |  423606040002461  |  319

3 | 20170727L00319  |  42360604002461     |  319

更新:

在對A和B列執行drop_duplicates之后,我得到了不同的結果。但是對任何其他組合執行drop_duplicates似乎失敗了。

問題很簡單,因為我將來自三個不同表的數據用於三個不同的模型,然后用於三個不同的pd數據幀。 然后執行“分組依據”,然后執行“ Concat”和“ Drop Duplicate”以得到不同的結果。

解決方案:前兩個表的列[C]的數據類型為varchar,第三個表的數據類型為big-int,因為drop_duplicate無法提供適當的結果,這是因為

更改數據類型可以得到准確的結果。 動態轉換數據類型的另一種方法是使用df1 [[[“ C”]] = df1 [[“ C”]]。apply(pd.to_numeric)

暫無
暫無

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

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