📜  Pandas DataFrame中的转换函数(1)

📅  最后修改于: 2023-12-03 15:03:28.268000             🧑  作者: Mango

Pandas DataFrame中的转换函数

Pandas是一个强大的数据分析库,其中的DataFrame是最常用的数据结构之一。DataFrame是一个二维的、大小可变的表格型数据结构,每列可以是不同的类型,可以将其看作是Series对象的容器。

在数据分析过程中,我们常常需要对DataFrame进行一些操作,如添加、删除列,转换数据类型等。Pandas提供了许多内置的转换函数来实现这些操作,接下来我们将介绍一些常用的函数。

创建DataFrame

先创建一个DataFrame,为了方便后续操作,我们假设这个DataFrame为一个学生信息表,包含学生ID、姓名、性别、年龄、成绩等信息。

import pandas as pd

data = {
    'ID': ['001', '002', '003', '004', '005'],
    'Name': ['Amy', 'Bob', 'Cathy', 'David', 'Emma'],
    'Gender': ['Female', 'Male', 'Female', 'Male', 'Female'],
    'Age': [21, 22, 23, 24, 25],
    'Grade': [85, 90, 92, 88, 95]
}

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

输出结果:

    ID   Name  Gender  Age  Grade
0  001    Amy  Female   21     85
1  002    Bob    Male   22     90
2  003  Cathy  Female   23     92
3  004  David    Male   24     88
4  005   Emma  Female   25     95
转换数据类型
astype()

astype()函数可以将DataFrame中的一列数据转换为指定的类型,常用的数据类型包括int、float、str等。

例如,我们将年龄列转换为字符串类型:

df['Age'] = df['Age'].astype(str)
print(df)

输出结果:

    ID   Name  Gender Age  Grade
0  001    Amy  Female  21     85
1  002    Bob    Male  22     90
2  003  Cathy  Female  23     92
3  004  David    Male  24     88
4  005   Emma  Female  25     95
to_datetime()

to_datetime()函数可以将传入的字符串转换为日期格式。

例如,我们将一个日期字符串转换为日期格式,并将其作为新的一列添加到DataFrame中:

date_str = '20220101'
df['Date'] = pd.to_datetime(date_str, format='%Y%m%d')
print(df)

输出结果:

    ID   Name  Gender Age  Grade       Date
0  001    Amy  Female  21     85 2022-01-01
1  002    Bob    Male  22     90 2022-01-01
2  003  Cathy  Female  23     92 2022-01-01
3  004  David    Male  24     88 2022-01-01
4  005   Emma  Female  25     95 2022-01-01
添加列
insert()

insert()函数可以在指定位置插入一列数据。

例如,我们在年龄列后面插入一列出生年份:

df.insert(loc=4, column='Year', value=df['Date'].dt.year)
print(df)

输出结果:

    ID   Name  Gender Age  Year  Grade       Date
0  001    Amy  Female  21  2022     85 2022-01-01
1  002    Bob    Male  22  2022     90 2022-01-01
2  003  Cathy  Female  23  2022     92 2022-01-01
3  004  David    Male  24  2022     88 2022-01-01
4  005   Emma  Female  25  2022     95 2022-01-01
assign()

assign()函数可以添加一列计算得到的新数据。

例如,我们添加一列平均分,它的值为成绩列与年龄列的平均值:

df = df.assign(Average=(df['Grade'] + df['Age']) / 2)
print(df)

输出结果:

    ID   Name  Gender Age  Year  Grade       Date  Average
0  001    Amy  Female  21  2022     85 2022-01-01     53.0
1  002    Bob    Male  22  2022     90 2022-01-01     56.0
2  003  Cathy  Female  23  2022     92 2022-01-01     57.5
3  004  David    Male  24  2022     88 2022-01-01     56.0
4  005   Emma  Female  25  2022     95 2022-01-01     60.0
删除列
drop()

drop()函数可以删除DataFrame中的指定列。

例如,我们删除年龄和成绩两列:

df = df.drop(columns=['Age', 'Grade'])
print(df)

输出结果:

    ID   Name  Gender  Year       Date  Average
0  001    Amy  Female  2022 2022-01-01     53.0
1  002    Bob    Male  2022 2022-01-01     56.0
2  003  Cathy  Female  2022 2022-01-01     57.5
3  004  David    Male  2022 2022-01-01     56.0
4  005   Emma  Female  2022 2022-01-01     60.0
总结

以上介绍了DataFrame常用的转换函数,包括转换数据类型、添加列、删除列等操作。在实际数据处理过程中,我们会用到各种各样的转换函数,需要根据具体需求来选择合适的函数。Pandas的DataFrame提供了很多强大的数据处理和转换功能,可以帮助我们更方便、高效地处理数据。