使用单热编码将列表转换为二进制值
Convert list to binary values using one-hot encoding
我在 CSV 文件中有一列。列中的每个单元格在列表中都有多个值。例如一个单元格将包含 ['A', 'B', 'C']
,另一个单元格将包含 ['B', 'D']
。我想将 one-hot encoding
应用于此列以转换为二进制值以用于机器学习。
请告诉我该怎么做?
输入的是csv文件,所以没有列表只有字符串。因此删除 []
并使用 Series.str.get_dummies
并删除列名称中的尾随 '
:
df = df['col'].str.strip('[]').str.get_dummies(', ')
df.columns = df.columns.str.strip("'")
如果需要一些处理将字符串转换为列表,请使用 MultiLabelBinarizer
以提高性能:
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
df = pd.DataFrame(mlb.fit_transform(df['col']),columns=mlb.classes_)
print (df)
我在 CSV 文件中有一列。列中的每个单元格在列表中都有多个值。例如一个单元格将包含 ['A', 'B', 'C']
,另一个单元格将包含 ['B', 'D']
。我想将 one-hot encoding
应用于此列以转换为二进制值以用于机器学习。
请告诉我该怎么做?
输入的是csv文件,所以没有列表只有字符串。因此删除 []
并使用 Series.str.get_dummies
并删除列名称中的尾随 '
:
df = df['col'].str.strip('[]').str.get_dummies(', ')
df.columns = df.columns.str.strip("'")
如果需要一些处理将字符串转换为列表,请使用 MultiLabelBinarizer
以提高性能:
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
df = pd.DataFrame(mlb.fit_transform(df['col']),columns=mlb.classes_)
print (df)