Pandas使用列表替换列值

16

我有一个数据框df,其中一些列是字符串,一些列是数字。我正在尝试将它们全部转换为数字。因此,我想要做的是:

col = df.ix[:,i]
le = preprocessing.LabelEncoder()
le.fit(col)
newCol = le.transform(col)
df.ix[:,i] = newCol

但是这并不起作用。我的问题基本上是,当我不知道列名,只知道列索引时,如何从数据框中删除一列,然后创建一个具有与我删除的列相同名称的新列?

2个回答

18

这应该可以满足您的需求:

# 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替换它,就没有必要删除该列。


12
newcol = [..,..,.....]

df['colname'] = newcol

在替换内容为newcol的同时,这将保持列名colname不变。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接