将功能应用于多列时,iloc和loc无法正常工作,

时间:2018-09-14 03:45:26

标签: python python-3.x pandas

假设这是我的async,而dtype开头是df

int64

然后我尝试使用

将所有值转换为类型 A B C 0 1 2 3 1 5 6 7 2 8 9 10 3 13 14 15
str

现在,它像我期望的那样将dtypes更改为df = df.astype(str) df.dtypes A int64 B int64 C int64 dtype: object 。现在,我尝试使用objectint64函数再次将几列转换为dtype pd.to_numeric

apply

上面的代码已执行,但没有将col df.iloc[:, 0:2] = df.iloc[:, 0:2].apply(pd.to_numeric, errors='coerce') print(df.dtypes) A object B object C object dtype: object 的dtypes更改为A and B。它们仍为int64。我不明白为什么它不起作用。

我什至用object而不是loc尝试了相同的代码,但是dtype仍然是iloc

object

但是当我仅使用df.loc[:, ['A','B']] = df.loc[:, ['A','B']].apply(pd.to_numeric, errors='coerce') 时,它可以工作。

df[[cols]]

注意:我已经搜索过,但找不到与我的问题有关的任何内容。如果这是一个重复的问题,请向我指出。

0 个答案:

没有答案