我有一个数据框df
,其中一些列是字符串,一些是数字。我试图将它们全部转换为数字。所以我想做的是这样的事情:
col = df.ix[:,i]
le = preprocessing.LabelEncoder()
le.fit(col)
newCol = le.transform(col)
df.ix[:,i] = newCol
但这不起作用。基本上我的问题是如何从数据框中删除一列然后创建一个新列,其名称与我不知道列名时删除的列相同,只列列索引?
答案 0 :(得分:2)
这应该适合你:
# Find the name of the column by index
n = df.columns[1]
# Drop that column
df.drop(n, axis = 1, inplace = True)
# Put whatever series you want in its place
df[n] = newCol
...其中[1]
可以是索引,axis = 1
不应该更改。
这非常简单地回答了你的问题,你要求删除一个列,然后再添加一个。但实际情况是,如果只用newCol
替换它,则无需删除列。
答案 1 :(得分:1)
newcol = [..,..,.....]
df['colname'] = newcol
这将在使用newcol替换其内容时保持名称不变。