我有一个数据框df
,其中一些列是字符串,一些列是数字。我正在尝试将它们全部转换为数字。因此,我想要做的是:
col = df.ix[:,i]
le = preprocessing.LabelEncoder()
le.fit(col)
newCol = le.transform(col)
df.ix[:,i] = newCol
但是这并不起作用。我的问题基本上是,当我不知道列名,只知道列索引时,如何从数据框中删除一列,然后创建一个具有与我删除的列相同名称的新列?
这应该可以满足您的需求:
# 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
替换它,就没有必要删除该列。
newcol = [..,..,.....]
df['colname'] = newcol
在替换内容为newcol的同时,这将保持列名colname不变。