【发布时间】:2020-09-30 16:55:23
【问题描述】:
我正在尝试将由字符串列表(包含空格)组成的单个 pandas 列转换为单热编码列(作为从 excel 读取的结果作为字符串输入)。我已经尝试过How to one-hot-encode from a pandas column containing a list? 的解决方案中讨论的方法,但它们在这种情况下不起作用——单个字母被分成几列。另一个条件是有时列表也可以为空。
更具体地说,对于数据帧 df
Col1 Col2 Col3
C 4 "['Chocolate cake', 'White wine', 'Peanuts']"
A 1.7 "[]"
B 1 "['Chocolate cake', 'Salmon']"
我想创建:
new_df
Col1 Col2 Chocolate cake White wine Peanuts Salmon
C 4 1 1 1 0
A 1.7 0 0 0 0
B 1 1 0 0 1
创建此数据框的 Python 方法是什么?
编辑:
生成 pandas 数据框的代码。
pd.DataFrame.from_dict({'Col1':['C', 'A', 'B'], 'Col2':[4, 1.7, 1], 'Col3':["['Chocolate cake', 'White wine', 'Peanuts']", \
"[]", "['Chocolate cake', 'Salmon']" ]})
【问题讨论】:
-
你能用代码重现样本数据吗?
-
好的,请等一下。
-
@Divakar 添加了代码。
标签: python numpy scikit-learn