关于python:使用列列表更改多个dataframe columns数据类型

Changing multiple dataframe columns datatype using a list of columns

本问题已经有最佳答案,请猛点这里访问。

我有一个.csv文件,我正在将它输入一个数据帧(df),这个数据帧有大量的列。以下是该表的精简版本:

1
2
3
4
5
6
7
Quarter  Response   Exception   Approved   On Hold
   2017         5         4           4          7
2017 Q1         3         5           2          7
2017 Q1         2         6           8          9
2017 Q2         8         4           5          3
2017 Q2         3         8           8          2
2017 Q2         3         6           8          6

所有列的数据类型当前为对象。四分之一对象响应对象异常对象批准的对象保留对象

我想将一些列(不是全部)的数据类型更改为float。是否可以创建一个我想要隐藏的列列表,并使用它来更改这些特定列的数据类型?例如,要转换的列列表可能是:

1
2
3
4
5
6
7
8
9
Columns = ['Response', 'Exception', 'Approved','On Hold']

df[Columns].apply(pd.to_numeric, errors = 'coerce')

Quarter   object
Response   float
Exception  float
Approved   float
On Hold    float

我试过运行上面的操作,但并非所有请求的列都有数据类型更改。如果有人能提供帮助,我们将不胜感激。

谢谢


df.apply()方法不会更改原始数据帧,因此需要如下内容:

1
df[Columns] = df[Columns].apply(pd.to_datetime)