3
私の.csvファイルには51個の列がありますが、int型の64個のデータ型をすべて一括でカテゴリに変換する必要があります。私はあなたが、その後ループは、各列の種類を変更するには、リストにカラム名を取得することができますdata[].
Pythonを使用してすべての列を数値からカテゴリに変換する方法
data[].astype('categorical')
私の.csvファイルには51個の列がありますが、int型の64個のデータ型をすべて一括でカテゴリに変換する必要があります。私はあなたが、その後ループは、各列の種類を変更するには、リストにカラム名を取得することができますdata[].
Pythonを使用してすべての列を数値からカテゴリに変換する方法
data[].astype('categorical')
内のすべてのカラム名を言及する必要があります。
import pandas as pd
import numpy as np
# create example dataframe
cats = ['A', 'B', 'C', 'D', 'E']
int_matrix = np.random.randint(10, size=(7,5))
df = pd.DataFrame(data = int_matrix, columns=cats)
print("Original example data\n")
print(df)
print(df.dtypes)
# get column names of data frame in a list
col_names = list(df)
print("\nNames of dataframe columns")
print(col_names)
# loop to change each column to category type
for col in col_names:
df[col] = df[col].astype('category',copy=False)
print("\nExample data changed to category type")
print(df)
print(df.dtypes)
この小さなプログラムの出力は次のとおりです。
Original example data
A B C D E
0 0 4 9 2 9
1 2 5 2 4 1
2 1 1 0 5 7
3 1 2 5 4 0
4 9 2 6 5 3
5 3 3 2 1 7
6 6 0 8 7 3
A int32
B int32
C int32
D int32
E int32
dtype: object
Names of dataframe columns
['A', 'B', 'C', 'D', 'E']
Example data changed to category type
A B C D E
0 0 4 9 2 9
1 2 5 2 4 1
2 1 1 0 5 7
3 1 2 5 4 0
4 9 2 6 5 3
5 3 3 2 1 7
6 6 0 8 7 3
A category
B category
C category
D category
E category
dtype: object
ありがとう、それは働いた:) – 1111
混乱を避けるために:それは.astypeする必要があります( 'カテゴリ')(https://pandas.pydata.org/pandas-docs/安定/ categorical.html) – Wouter