在Pandas dataframe中有一个名为“label”的变量,它包含多个字符串值(例如:'label1', "label2', 'label3'...
)。你知道吗
label
label1
label1
label23
label3
label11
我将所有唯一的值输出到一个列表中,然后创建新的变量
unique_labels = df['label'].unique()
for i in unique_labels: # create new single label variable holders
df[str(i)] = 0
现在我有了
label label1 label2 .... label23
label1 0 0 0
label23 0 0 0
我想基于'label'
将相应的值赋给新的单标签变量,如下所示
label label1 label2 .... label23
label1 1 0 0
label23 0 0 1
这是我的密码
def single_label(df):
for i in range(len(unique_labels)):
if df['label'] == str(unique_labels[i]):
df[unique_labels[i]] == 1
df = df.applymap(single_label)
获取此错误
TypeError: ("'int' object is not subscriptable", 'occurred at index Unnamed: 0')
IIUC,在删除重复项之后,可以使用^{} ,这将比迭代更快,产生更干净的代码:
您可以使用
prefix
和prefix_sep
参数除去这些label
前缀和下划线:编辑:带有第二列,即:
只需在label列上调用
pd.get_dummies
:但是,这样就可以去掉没有重复的行,我认为这不是您想要的(除非我弄错了)。如果没有,只需省略drop duplicates调用:
相关问题 更多 >
编程相关推荐