パンダ-2つのセルの類似した内容に基づいて行をマージします

Waqas Khalid Obeidy

次のようなパンダのデータフレームがあります。IDとCountryCodeの値の同一のペアを含むすべての行をマージしようとしています。

records = [ (1, 'IN', 'yes' , '', '' , '', '') ,
             (1, 'MY', '' , 'yes', '' , '', '' ) ,
             (1, 'MY', '' , '', 'yes', '', '' ) ,
             (1, 'MY', '' , '' , '' , 'yes', '') ,
             (1, 'US', '' , '', '' , '', 'yes') ,
             (2, 'MY', 'yes' , '', '' , '', ''),
             (2, 'UK', '' , 'yes', '' , '', '')]

dfRecords = pd.DataFrame(records, columns = ['ID' , 'CountryCode', 'Address' , 'MobileNo', 'HomeNo', 'OfficeNo', 'TacNo']) 

出力:

ID  CountryCode Address MobileNo    HomeNo  OfficeNo    TacNo
1   IN          yes             
1   MY                  yes         
1   MY                              yes     
1   MY                                      yes 
1   US                                                  yes
2   MY          yes             
2   UK                  yes 

これは私が必要なものです

ID  CountryCode Address MobileNo    HomeNo  OfficeNo    TacNo
1   IN          yes             
1   MY                  yes         yes     yes
1   US                                                  yes
2   MY          yes             
2   UK                  yes 

ID列とCountryCode列に基づいてgroupby()を使用する必要があると思いますが、行をマージできません。

groupings = dfRecords.groupby(['ID','CountryCode'])
groupings.groups

出力:

{(1, 'IN'): Int64Index([0], dtype='int64'),
 (1, 'MY'): Int64Index([1, 2, 3], dtype='int64'),
 (1, 'US'): Int64Index([4], dtype='int64'),
 (2, 'MY'): Int64Index([5], dtype='int64'),
 (2, 'UK'): Int64Index([6], dtype='int64')}
piRSquared

max

ので'yes'より大きけれ''

dfRecords.groupby(['ID', 'CountryCode'], as_index=False).max()

   ID CountryCode Address MobileNo HomeNo OfficeNo TacNo
0   1          IN     yes                               
1   1          MY              yes    yes      yes      
2   1          US                                    yes
3   2          MY     yes                               
4   2          UK              yes                      

first

頼らずに max

g = dfRecords.mask(dfRecords == '').groupby(['ID', 'CountryCode'], as_index=False)
g.first().fillna('')

   ID CountryCode Address MobileNo HomeNo OfficeNo TacNo
0   1          IN     yes                               
1   1          MY              yes    yes      yes      
2   1          US                                    yes
3   2          MY     yes                               
4   2          UK              yes                      

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダは、列に基づいて2つの行を1つの行にマージします

分類Dev

パンダの別の列の類似した値のグループ化に基づいて新しい列を作成します

分類Dev

パンダの最初の2つの列に基づいて、行数が異なる列をマージします

分類Dev

行レベルで他の列名を持ついくつかの要素の類似性に基づいて、列のセル値パンダ更新する方法

分類Dev

2列の一致する行に基づいて2つのデータフレームをパンダとマージします

分類Dev

いくつかの特定の列、パンダに基づいてデータをマージします

分類Dev

行の値に基づいてパンダのデータフレームをマージします

分類Dev

列パンダのデータに基づいて行エントリをマージします

分類Dev

2つの列の値に基づいてパンダフレームの行を選択します

分類Dev

Pythonの2つの列に基づいてPythonの2つのcsvファイルをマッピングまたはマージしますか?

分類Dev

パンダ-列の値に基づいてほぼ重複する行をマージします

分類Dev

条件に基づいて、パンダで2つのDataFrameをマージする

分類Dev

パンダ:1つの列の類似した値に基づいて、データフレームの空の列に複数のデータフレームの値を入力します

分類Dev

パンダの2つの条件に基づいて2つのデータフレームをマージします

分類Dev

指定された類似性のパーセンテージに基づいて、バルクテキストをグループにグループ化する

分類Dev

パンダ:別の列の類似した連続番号に基づいて複数の列を合計します

分類Dev

パンダ:別の列の値に基づいて2つの列をグループ化します

分類Dev

1つの列の合計に基づいて、パンダの他の2つの列でグループ化された新しい列を追加します

分類Dev

Sed-2行目のパターンに基づいて2行をマージします

分類Dev

パンダの列の内容に基づいて分類の列を作成します

分類Dev

不足しているデータに基づいて2つのパンダシリーズをマージします

分類Dev

類似している2つの列に基づいてパンダのデータフレームを並べ替えますが、一方に値がある場合は一方がNaNになります

分類Dev

パーセンテージに基づいて2つの座標間の点を計算します(球形)

分類Dev

パーセンテージに基づいて2つの座標間の点を計算します(球形)

分類Dev

パーセンテージ値に基づいて2つの色の間を補間します

分類Dev

パンダは2つのcsvを類似した列でマージしますが、ヘッダー名は異なります

分類Dev

パンダのgroupbyに基づいてパーセンテージを取得しますか?

分類Dev

類似性のパーセンテージに従って、ファイル内のいくつかのシーケンスを連結します

分類Dev

同じ列名の値に基づいてパンダの2つのデータフレームをマージします

Related 関連記事

  1. 1

    パンダは、列に基づいて2つの行を1つの行にマージします

  2. 2

    パンダの別の列の類似した値のグループ化に基づいて新しい列を作成します

  3. 3

    パンダの最初の2つの列に基づいて、行数が異なる列をマージします

  4. 4

    行レベルで他の列名を持ついくつかの要素の類似性に基づいて、列のセル値パンダ更新する方法

  5. 5

    2列の一致する行に基づいて2つのデータフレームをパンダとマージします

  6. 6

    いくつかの特定の列、パンダに基づいてデータをマージします

  7. 7

    行の値に基づいてパンダのデータフレームをマージします

  8. 8

    列パンダのデータに基づいて行エントリをマージします

  9. 9

    2つの列の値に基づいてパンダフレームの行を選択します

  10. 10

    Pythonの2つの列に基づいてPythonの2つのcsvファイルをマッピングまたはマージしますか?

  11. 11

    パンダ-列の値に基づいてほぼ重複する行をマージします

  12. 12

    条件に基づいて、パンダで2つのDataFrameをマージする

  13. 13

    パンダ:1つの列の類似した値に基づいて、データフレームの空の列に複数のデータフレームの値を入力します

  14. 14

    パンダの2つの条件に基づいて2つのデータフレームをマージします

  15. 15

    指定された類似性のパーセンテージに基づいて、バルクテキストをグループにグループ化する

  16. 16

    パンダ:別の列の類似した連続番号に基づいて複数の列を合計します

  17. 17

    パンダ:別の列の値に基づいて2つの列をグループ化します

  18. 18

    1つの列の合計に基づいて、パンダの他の2つの列でグループ化された新しい列を追加します

  19. 19

    Sed-2行目のパターンに基づいて2行をマージします

  20. 20

    パンダの列の内容に基づいて分類の列を作成します

  21. 21

    不足しているデータに基づいて2つのパンダシリーズをマージします

  22. 22

    類似している2つの列に基づいてパンダのデータフレームを並べ替えますが、一方に値がある場合は一方がNaNになります

  23. 23

    パーセンテージに基づいて2つの座標間の点を計算します(球形)

  24. 24

    パーセンテージに基づいて2つの座標間の点を計算します(球形)

  25. 25

    パーセンテージ値に基づいて2つの色の間を補間します

  26. 26

    パンダは2つのcsvを類似した列でマージしますが、ヘッダー名は異なります

  27. 27

    パンダのgroupbyに基づいてパーセンテージを取得しますか?

  28. 28

    類似性のパーセンテージに従って、ファイル内のいくつかのシーケンスを連結します

  29. 29

    同じ列名の値に基づいてパンダの2つのデータフレームをマージします

ホットタグ

アーカイブ