データフレームの行で一意のIDを見つける

edvin.s

入力-5万行を超えるデータフレーム。

期待される結果:複数の列で一意のIDを検索します。

データフレームがあります:

id par1 par2 par3
1  a    1    AA
2  b    2    AB
3  c    3    AC
4  a    4    AD
5  d    3    AE
6  e    5    AD
7  d    1    AF

したがって、ロジックは、いずれかの行が共通のパラメーターを共有する場合、つまり同じ一意のIDである場合、結果は次のようになります。反復によって作成されます。最初にpar1によって作成されます。

id par1 par2 par3  uniq_id
1  a    1    AA    1
2  b    2    AB    2
3  c    3    AC    3
4  a    4    AD    1
5  d    3    AE    4   
6  e    5    AD    5 
7  d    1    AF    4

次にpar2によって:

id par1 par2 par3  uniq_id
1  a    1    AA    1
2  b    2    AB    2
3  c    3    AC    3
4  a    4    AD    1
5  d    3    AE    3   
6  e    5    AD    5 
7  d    1    AF    1

次にpar3で:

id par1 par2 par3  uniq_id
1  a    1    AA    1
2  b    2    AB    2
3  c    3    AC    3
4  a    4    AD    1
5  d    3    AE    3   
6  e    5    AD    1 
7  d    1    AF    1

次に、誤解を招く可能性があるかどうかを確認する必要があります。id = 7 uniq_id = 1 id = 7 par1 id = 5 id = 3`も変更されるためfeid=5id=3getを取得する必要があります。uniq_id = 1isandsharewith, and because of that

私が何を説明しようとしているのかが明確であることを願っています。現時点では、私が作成した唯一の実用的なソリューションです。multiple forサイクルを作成し、値を手動で比較しますが、多くの観測があるため、実行に永遠にかかる可能性があります。

ジェズリール

factorize最初に使用し、次に:で使用Series.mapDataFrame.drop_duplicatesます。

df['uniq_id'] = pd.factorize(df['par1'])[0] + 1
df['uniq_id'] = df['par2'].map(df.drop_duplicates('par2').set_index('par2')['uniq_id'])
df['uniq_id'] = df['par3'].map(df.drop_duplicates('par3').set_index('par3')['uniq_id'])
print (df)
   id par1  par2 par3  uniq_id
0   1    a     1   AA        1
1   2    b     2   AB        2
2   3    c     3   AC        3
3   4    a     4   AD        1
4   5    d     3   AE        3
5   6    e     5   AD        1
6   7    d     1   AF        1

可能であれば、より多くの列が可能です。ループを作成します。

df['uniq_id'] = pd.factorize(df['par1'])[0] + 1

for col in ['par2','par3']:
    df['uniq_id'] = df[col].map(df.drop_duplicates(col).set_index(col)['uniq_id'])

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

データフレームのすべての列の一意の値を見つける

分類Dev

データフレームから列の一意の組み合わせを見つける

分類Dev

非一意のIDと列の値を持つデータフレームを一意のIDごとに1つの行に変換する

分類Dev

データファイルで一意の値を見つける

分類Dev

データフレームを行バインドし、一意のIDを増加させ続ける

分類Dev

1つのホットエンコードされたデータフレームで一意の組み合わせを見つける方法は?

分類Dev

2つの値の間で一意のデータを見つける

分類Dev

カテゴリデータフレーム内で一意のクラス値を見つけるためのエラー

分類Dev

データ属性の一意の数を見つける方法

分類Dev

R:データフレームから変数を分割し、一意の変数を見つけます

分類Dev

pandasデータフレームで一意の値を見つけて照合する効率的で高速な実装

分類Dev

データフレーム間でほぼ同一の行を見つける

分類Dev

Rのパネルデータフレームから一意のIDを持つ行を削除するにはどうすればよいですか?

分類Dev

データフレーム内の一意のIDで最初と最後の行の値を取得します

分類Dev

別のデータフレームから一意のIDを取得する

分類Dev

一意のIDのデータフレームを取得する方法

分類Dev

NaNを除くすべての一意の値を含むパンダデータフレームの列名を見つける方法は?

分類Dev

データフレームの行をマージして、Rの一意のIDごとに1つの行を作成する方法

分類Dev

2つのデータフレームの2つの列で一意の要素を検索する

分類Dev

同じデータフレームの別の列に一意の値を含む列値を見つける方法は?

分類Dev

一意のIDを持つデータフレーム全体の累積積を計算する

分類Dev

データフレームのリストで一意の行を返す

分類Dev

pandasデータフレームのIDでグループ化されたすべての列の一意の値ごとに最小値を見つける方法

分類Dev

Pythonパンダデータフレーム:別の列の一意の値ごとに最大値を見つける

分類Dev

rの2つのデータフレーム間で一致する観測値に同一の一意のIDを割り当てる方法は?

分類Dev

2つのデータフレーム間でランダムだが一意の値を割り当てる

分類Dev

2つの列から一意のデータを見つける

分類Dev

foreachと.containsを使用して2つの辞書を比較し、一意のデータと一意でないデータを見つける最速の方法

分類Dev

データフレームを使用してPythonで一意のサービスID番号を生成する方法

Related 関連記事

  1. 1

    データフレームのすべての列の一意の値を見つける

  2. 2

    データフレームから列の一意の組み合わせを見つける

  3. 3

    非一意のIDと列の値を持つデータフレームを一意のIDごとに1つの行に変換する

  4. 4

    データファイルで一意の値を見つける

  5. 5

    データフレームを行バインドし、一意のIDを増加させ続ける

  6. 6

    1つのホットエンコードされたデータフレームで一意の組み合わせを見つける方法は?

  7. 7

    2つの値の間で一意のデータを見つける

  8. 8

    カテゴリデータフレーム内で一意のクラス値を見つけるためのエラー

  9. 9

    データ属性の一意の数を見つける方法

  10. 10

    R:データフレームから変数を分割し、一意の変数を見つけます

  11. 11

    pandasデータフレームで一意の値を見つけて照合する効率的で高速な実装

  12. 12

    データフレーム間でほぼ同一の行を見つける

  13. 13

    Rのパネルデータフレームから一意のIDを持つ行を削除するにはどうすればよいですか?

  14. 14

    データフレーム内の一意のIDで最初と最後の行の値を取得します

  15. 15

    別のデータフレームから一意のIDを取得する

  16. 16

    一意のIDのデータフレームを取得する方法

  17. 17

    NaNを除くすべての一意の値を含むパンダデータフレームの列名を見つける方法は?

  18. 18

    データフレームの行をマージして、Rの一意のIDごとに1つの行を作成する方法

  19. 19

    2つのデータフレームの2つの列で一意の要素を検索する

  20. 20

    同じデータフレームの別の列に一意の値を含む列値を見つける方法は?

  21. 21

    一意のIDを持つデータフレーム全体の累積積を計算する

  22. 22

    データフレームのリストで一意の行を返す

  23. 23

    pandasデータフレームのIDでグループ化されたすべての列の一意の値ごとに最小値を見つける方法

  24. 24

    Pythonパンダデータフレーム:別の列の一意の値ごとに最大値を見つける

  25. 25

    rの2つのデータフレーム間で一致する観測値に同一の一意のIDを割り当てる方法は?

  26. 26

    2つのデータフレーム間でランダムだが一意の値を割り当てる

  27. 27

    2つの列から一意のデータを見つける

  28. 28

    foreachと.containsを使用して2つの辞書を比較し、一意のデータと一意でないデータを見つける最速の方法

  29. 29

    データフレームを使用してPythonで一意のサービスID番号を生成する方法

ホットタグ

アーカイブ