在Pandas Dataframe中为一个或多个列更改数据类型

在Pandas Dataframe中为一个或多个列更改数据类型

在数据分析和处理中,Pandas是一个十分常用的Python库。在Pandas中,Dataframe是一个类似于电子表格的二维表数据结构,可以对数据进行各种操作。在一些情况下,数据中的某些列可能需要更改数据类型。本文将介绍如何使用Pandas Dataframe为一个或多个列更改数据类型。

取得数据

首先,我们需要取得示例数据,创建一个包含整数、字符串、浮点数和日期的数据框:

import pandas as pd
from datetime import datetime

data = {
    'id': [1, 2, 3, 4, 5],
    'name': ['Tom', 'Jerry', 'Alice', 'Bob', 'Kate'],
    'age': [20, 30, 25, 40, 28],
    'score': [80.5, 90.0, 77.5, 88.0, 92.5],
    'register_time': [
        datetime(2020, 9, 1),
        datetime(2020, 8, 1),
        datetime(2020, 9, 5),
        datetime(2020, 7, 1),
        datetime(2020, 10, 1)
    ]
}

df = pd.DataFrame(data)
print(df)

运行后,输出的数据框如下:

   id   name  age  score register_time
0   1    Tom   20   80.5    2020-09-01
1   2  Jerry   30   90.0    2020-08-01
2   3  Alice   25   77.5    2020-09-05
3   4    Bob   40   88.0    2020-07-01
4   5   Kate   28   92.5    2020-10-01

查看数据类型

在更改数据类型之前,我们需要先查看数据框中各列的数据类型。可以使用.dtypes属性查看数据框中的各列数据类型:

print(df.dtypes)

运行后,输出的结果如下:

id                         int64
name                      object
age                        int64
score                    float64
register_time    datetime64[ns]
dtype: object

可以看到,id和age是整数,score是浮点数,name是字符串,register_time是日期。

更改列数据类型

更改单个列数据类型

要更改一个列的数据类型,可以使用.astype()方法。例如,我们将id从整数更改为字符串类型:

df['id'] = df['id'].astype(str)
print(df.dtypes)

运行后,输出的结果如下:

id                        object
name                      object
age                        int64
score                    float64
register_time    datetime64[ns]
dtype: object

可以看到,id的数据类型已经从整数更改为字符串。

更改多个列数据类型

如果需要更改多个列的数据类型,可以使用.astype()方法和字典。例如,我们将id从字符串更改为整数,将age从整数更改为浮点数:

df = df.astype({'id': int, 'age': float})
print(df.dtypes)

运行后,输出的结果如下:

id                        int32
name                     object
age                     float64
score                   float64
register_time    datetime64[ns]
dtype: object

可以看到,id的数据类型已经从字符串更改为整数,age的数据类型已经从整数更改为浮点数。

结论

在Pandas Dataframe中,可以使用.astype()方法为一个或多个列更改数据类型。更改单个列数据类型时,可以直接使用.astype()方法;更改多个列数据类型时,需要使用.astype()方法和字典。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程