Python Pandasテーブルのテキスト値を一意のIDに置き換えるにはどうすればよいですか?

Kingua

私はパンダを使用してこの形式のファイルを読み取っています:

fp = pandas.read_table("Measurements.txt")
fp.head()

"Aaron", 3, 5, 7  
"Aaron", 3, 6, 9  
"Aaron", 3, 6, 10 
"Brave", 4, 6, 0 
"Brave", 3, 6, 1

それぞれの名前を一意のIDに置き換えて、出力が次のようになるようにします。

"1", 3, 5, 7 
"1", 3, 6, 9 
"1", 3, 6, 10 
"2", 4, 6, 0 
"2", 3, 6, 1

どうやってやるの?

ありがとう!

MaxU

カテゴリカルdtypeを利用します

In [97]: x['ID'] = x.name.astype('category').cat.rename_categories(range(1, x.name.nunique()+1))

In [98]: x
Out[98]:
    name  v1  v2  v3 ID
0  Aaron   3   5   7  1
1  Aaron   3   6   9  1
2  Aaron   3   6  10  1
3  Brave   4   6   0  2
4  Brave   3   6   1  2

数値の代わりに文字列IDが必要な場合は、次を使用できます。

x.name.astype('category').cat.rename_categories([str(x) for x in range(1,x.name.nunique()+1)])

または、@ MedAliが彼の回答述べたように method --demoを使用しますfactorize()

In [141]: x['cat'] = pd.Categorical((pd.factorize(x.name)[0] + 1).astype(str))

In [142]: x
Out[142]:
    name  v1  v2  v3 ID cat
0  Aaron   3   5   7  1   1
1  Aaron   3   6   9  1   1
2  Aaron   3   6  10  1   1
3  Brave   4   6   0  2   2
4  Brave   3   6   1  2   2

In [143]: x.dtypes
Out[143]:
name      object
v1         int64
v2         int64
v3         int64
ID      category
cat     category
dtype: object

In [144]: x['cat'].cat.categories
Out[144]: Index(['1', '2'], dtype='object')

または整数としてカテゴリを持つ:

In [154]: x['cat'] = pd.Categorical((pd.factorize(x.name)[0] + 1))

In [155]: x
Out[155]:
    name  v1  v2  v3 ID cat
0  Aaron   3   5   7  1   1
1  Aaron   3   6   9  1   1
2  Aaron   3   6  10  1   1
3  Brave   4   6   0  2   2
4  Brave   3   6   1  2   2

In [156]: x['cat'].cat.categories
Out[156]: Int64Index([1, 2], dtype='int64')

説明:

In [99]: x.name.astype('category')
Out[99]:
0    Aaron
1    Aaron
2    Aaron
3    Brave
4    Brave
Name: name, dtype: category
Categories (2, object): [Aaron, Brave]

In [100]: x.name.astype('category').cat.categories
Out[100]: Index(['Aaron', 'Brave'], dtype='object')

In [101]: x.name.astype('category').cat.rename_categories([1,2])
Out[101]:
0    1
1    1
2    1
3    2
4    2
dtype: category
Categories (2, int64): [1, 2]

factorize()メソッドの説明

In [157]: (pd.factorize(x.name)[0] + 1)
Out[157]: array([1, 1, 1, 2, 2])

In [158]: pd.Categorical((pd.factorize(x.name)[0] + 1))
Out[158]:
[1, 1, 1, 2, 2]
Categories (2, int64): [1, 2]

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Python Pandas:特定の列のみに基づいてテーブルを一意にするにはどうすればよいですか?

分類Dev

ファイル内の複数の3行のテキストブロックを、Pythonで同じデータを含む1行のテキストに置き換えるにはどうすればよいですか?

分類Dev

Pythonを使用してテキストファイルの複数行の特定の文字を置き換えるにはどうすればよいですか?

分類Dev

long ifelseステートメントを使用せずにPython辞書の値を置き換えるにはどうすればよいですか?

分類Dev

Pythonで、関数を使用してテキストファイルの値をその値の新しい更新バージョンに置き換えるにはどうすればよいですか?

分類Dev

pandasデータフレームフィールドを使用して、Pythonの別のフィールドのテキストを正規表現で置き換えるにはどうすればよいですか?

分類Dev

辞書で見つかったリストの値をそのキーに置き換えるにはどうすればよいですか?Python

分類Dev

Pythonで一意のアイテムについていくつかのセットをテストするにはどうすればよいですか?

分類Dev

(Python)Splinterスクリーンショットファイル名に一意のIDを追加するにはどうすればよいですか?

分類Dev

Pythonで列の値を特定の値に置き換えるにはどうすればよいですか?

分類Dev

forループの画像マスキングをPythonの論理インデックスに置き換えるにはどうすればよいですか?

分類Dev

Python + Glade + PyGObject。2つのテキストフィールドの値を一度に取得するにはどうすればよいですか?

分類Dev

Pythonで8桁の一意のIDを作成するにはどうすればよいですか?

分類Dev

このPythonスクリプトを改善して、dbfファイルのレコードを置き換えるにはどうすればよいですか?

分類Dev

Python-Pandasのdescribe()テーブルを1つのステートメントで説明するにはどうすればよいですか?

分類Dev

Pythonクラスオブジェクト全体で一意のリストを作成するにはどうすればよいですか?

分類Dev

Pythonリストのすべてのゼロを何も置き換えないようにするにはどうすればよいですか?

分類Dev

このテキストをPythonのテーブルに解析するにはどうすればよいですか?

分類Dev

Pythonで、データフレームの特定の値をその列の平均に置き換えるにはどうすればよいですか?

分類Dev

python pandasでグループ化して、一意のカウントといくつかの値のカウントを同じ列の集計として取得するにはどうすればよいですか?

分類Dev

Pythonで、一致する部分に基づいてパスの一部を置き換えるにはどうすればよいですか?

分類Dev

Pythonでテキストファイルの複数の値を読み書きするにはどうすればよいですか?

分類Dev

Pythonを使用してテーブル内の重複する値を転置および削除するにはどうすればよいですか?

分類Dev

Python 3.7で色付きのテキストを印刷するにはどうすればよいですか?

分類Dev

python-docxへのパスを使用して画像を埋め込み、画像を.DOCXテンプレートに繰り返し追加し、それぞれの一意の.DOCXを保存するにはどうすればよいですか?

分類Dev

Python 3でインデックスにアクセスして、配列の値を置き換えるにはどうすればよいですか?

分類Dev

Python 3 pandas.DataFrameのテーブル形式を変更するにはどうすればよいですか?

分類Dev

Pythonでパンダのデータフレーム列の値を一意の値の数に基づいて数値表現に一度に変換するにはどうすればよいですか?

分類Dev

ネストされたリストの一意の値をPythonの数値に置き換えます

Related 関連記事

  1. 1

    Python Pandas:特定の列のみに基づいてテーブルを一意にするにはどうすればよいですか?

  2. 2

    ファイル内の複数の3行のテキストブロックを、Pythonで同じデータを含む1行のテキストに置き換えるにはどうすればよいですか?

  3. 3

    Pythonを使用してテキストファイルの複数行の特定の文字を置き換えるにはどうすればよいですか?

  4. 4

    long ifelseステートメントを使用せずにPython辞書の値を置き換えるにはどうすればよいですか?

  5. 5

    Pythonで、関数を使用してテキストファイルの値をその値の新しい更新バージョンに置き換えるにはどうすればよいですか?

  6. 6

    pandasデータフレームフィールドを使用して、Pythonの別のフィールドのテキストを正規表現で置き換えるにはどうすればよいですか?

  7. 7

    辞書で見つかったリストの値をそのキーに置き換えるにはどうすればよいですか?Python

  8. 8

    Pythonで一意のアイテムについていくつかのセットをテストするにはどうすればよいですか?

  9. 9

    (Python)Splinterスクリーンショットファイル名に一意のIDを追加するにはどうすればよいですか?

  10. 10

    Pythonで列の値を特定の値に置き換えるにはどうすればよいですか?

  11. 11

    forループの画像マスキングをPythonの論理インデックスに置き換えるにはどうすればよいですか?

  12. 12

    Python + Glade + PyGObject。2つのテキストフィールドの値を一度に取得するにはどうすればよいですか?

  13. 13

    Pythonで8桁の一意のIDを作成するにはどうすればよいですか?

  14. 14

    このPythonスクリプトを改善して、dbfファイルのレコードを置き換えるにはどうすればよいですか?

  15. 15

    Python-Pandasのdescribe()テーブルを1つのステートメントで説明するにはどうすればよいですか?

  16. 16

    Pythonクラスオブジェクト全体で一意のリストを作成するにはどうすればよいですか?

  17. 17

    Pythonリストのすべてのゼロを何も置き換えないようにするにはどうすればよいですか?

  18. 18

    このテキストをPythonのテーブルに解析するにはどうすればよいですか?

  19. 19

    Pythonで、データフレームの特定の値をその列の平均に置き換えるにはどうすればよいですか?

  20. 20

    python pandasでグループ化して、一意のカウントといくつかの値のカウントを同じ列の集計として取得するにはどうすればよいですか?

  21. 21

    Pythonで、一致する部分に基づいてパスの一部を置き換えるにはどうすればよいですか?

  22. 22

    Pythonでテキストファイルの複数の値を読み書きするにはどうすればよいですか?

  23. 23

    Pythonを使用してテーブル内の重複する値を転置および削除するにはどうすればよいですか?

  24. 24

    Python 3.7で色付きのテキストを印刷するにはどうすればよいですか?

  25. 25

    python-docxへのパスを使用して画像を埋め込み、画像を.DOCXテンプレートに繰り返し追加し、それぞれの一意の.DOCXを保存するにはどうすればよいですか?

  26. 26

    Python 3でインデックスにアクセスして、配列の値を置き換えるにはどうすればよいですか?

  27. 27

    Python 3 pandas.DataFrameのテーブル形式を変更するにはどうすればよいですか?

  28. 28

    Pythonでパンダのデータフレーム列の値を一意の値の数に基づいて数値表現に一度に変換するにはどうすればよいですか?

  29. 29

    ネストされたリストの一意の値をPythonの数値に置き換えます

ホットタグ

アーカイブ