16. pd.to_datetime()-转换日期数据

文摘   教育   2023-11-06 00:04   云南  

【目录】


  • 1. Excel数据类型

  • 2. Pandas数据类型

  • 3. df.info( )-查看DataFrame每一列的数据类型

  • 4. df['列索引'].dtype-获取某一列的数据

  • 5. pd.to_datetime-转换日期类型数据

  • 6. pd.to_datetime语法解析

  • 7. 实操练习


【正文】


学习时间:30分钟。

1. Excel数据类型

Excel中常见的数据类型有:

  • 文本型
  • 数值型
  • 日期型
  • 时间型
  • 百分比型
  • 货币型

【图片展示-Excel数据类型】

1

2. Pandas数据类型

Pandas不像Excel分的那么详细,它主要有以下6种数据类型:

  • int :整数型
  • float  : 浮点数
  • object : Python对象类型,用O表示
  • string_  : 字符串类型,用S表示
  • Unicode_  : 固定长度的Unicode类型,跟字符串定义方式一样
  • datatime64[ns]  :表示时间格式

3. df.info( )-查看DataFrame每一列的数据类型

在开始今天的教学之前,我们先回顾之前学的几个知识点。

【创建df对象】

创建一个DataFrame对象。

列索引为:姓名、籍贯、出生日期。

内容随意填充。

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 要传入的数据类型为字典   
# 字典的3个键姓名、籍贯、出生日期是DataFrame对象的列索引
# 字典的值是DataFrame对象的数据 
data = {
    '姓名': ['张三''李四''王五''赵六''钱七'],
    '籍贯': ['云南','海南','北京','上海','广州'],
    '出生日期': ['1999-10-11''1992-10-12''1993-12-12''1995-10-15''1997-10-10']
}

# 实例化类创建对象:对象名 = 类名()
# df是对象名,DataFrame是类名
df = pd.DataFrame(data)

# 输出DataFrame对象
print(df)

【终端输出】

   姓名  籍贯        出生日期
0 张三 云南 1999-10-11
1 李四 海南 1992-10-12
2 王五 北京 1993-12-12
3 赵六 上海 1995-10-15
4 钱七 广州 1997-10-10

【df.info( )函数-查看DataFrame对象信息】

【代码示例】

df.info( )

【终端输出】

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 姓名 5 non-null object
1 籍贯 5 non-null object
2 出生日期 5 non-null object
dtypes: object(3)
memory usage: 248.0+ bytes

df.info()函数可以查看DataFrame每一列的数据类型。

object表示数据类型为python对象。

4. df['列索引'].dtype-获取某一列的数据

df['列索引']可以获取特定列的数据。

df['列索引'].dtype可以获取该列的的数据类型。

【代码示例】

df["出生日期"]

【终端输出】

0    1999-10-11
1 1992-10-12
2 1993-12-12
3 1995-10-15
4 1997-10-10
Name: 出生日期, dtype: object

字典的3个键姓名、籍贯、出生日期是DataFrame对象的列索引。

df["出生日期"]可以获取到出生日期这一整列的数据。

dtype: object表示这一列的数据类型都是 object类型。

5. pd.to_datetime-转换日期类型数据

运行下面的代码,观察输出结果。

【代码示例】

# 转换日期数据,并设置对应的日期格式
data = pd.to_datetime(df["出生日期"], format = '%Y-%m-%d')
# 查看 date
data

【终端输出】

0   1999-10-11
1 1992-10-12
2 1993-12-12
3 1995-10-15
4 1997-10-10
Name: 出生日期, dtype: datetime64[ns]

dtype: datetime64[ns]表示数据类型为时间格式。

【转换前后数据类型对比】

  • 转换前:Name: 出生日期, dtype: object
  • 转换后:Name: 出生日期, dtype: datetime64[ns]

【代码解析】

data = pd.to_datetime(df["出生日期"], format = '%Y-%m-%d')

这段代码的作用是将 df对象中名为 出生日期 的列中的数据类型转换为日期时间格式。

最终返回的结果存储在名为 data的变量中。

%Y-%m-%d 是日期字符串的格式,表示年-月-日的形式。

进行数据转换这个操作可以方便后续对日期进行处理和分析。

%Y-%m-%d

  • 年:year
  • 月:month
  • 日:day

6. pd.to_datetime语法解析

【作用】

pd.to_datetime()函数是pandas库中的一个函数,用于将输入的日期时间转换为pandas中的日期时间格式。

【完整语法】

pd.to_datetime(arg, 
               errors='raise'
               dayfirst=False
               yearfirst=False
               utc=None
               format=None
               exact=True
               unit=None
               infer_datetime_format=False
               origin='unix'
               cache=False)

很多参数目前我们不需要掌握,本节只讲解2个常用的参数。

【精简语法】

pd.to_datetime(arg, format)
  • pd库名,是pandas库的简写。
  • 英文小圆点.
  • to_datetime函数名,理解为转换成日期格式的函数。

【参数】

  • arg :需要转换为日期时间格式的参数,可以是字符串、列表、数组、Series、DataFrame等。
  • format:可选参数,默认值为None,表示输入日期时间的格式。如果不指定,则会尝试自动推断格式。

【代码示例】

data = pd.to_datetime(df["出生日期"], format = '%Y-%m-%d')

上面的代码中我们要转换的数据为df对象中的出生日期列.

所以对应的 arg 参数就是 df["出生日期"]

format 参数为 datetime 类型的日期格式.

比如说这份数据,它是以年-月-日的形式出现的,那么它对应的 format 就是 '%Y-%m-%d'(year-month-day的缩写)。

7. 实操练习

【目标任务】

提供一个名为销售表.csv的表。

任务1:查看其日期列的数据类型。

任务2:将日期列的数据类型转换为日期类型。

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\16\销售表.csv"

# 调用函数:库名.函数名()
# pd是库名
# read_excel是函数名
# io参数=file,file是路径
df = pd.read_csv(file)

df.info()

【终端输出】

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14 entries, 0 to 13
Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 订单编号 14 non-null object
1 日期 14 non-null object
2 省 14 non-null object
3 订单量 14 non-null int64
4 单价 14 non-null int64
5 销售额 14 non-null int64
dtypes: int64(3), object(3)
memory usage: 800.0+ bytes

【代码示例-查看日期列数据】

df["日期"]

【终端输出】

0     2020-1-1
1 2020-1-1
2 2020-1-1
3 2020-1-1
4 2020-1-1
5 2020-1-1
6 2020-1-1
7 2020-1-1
8 2020-1-1
9 2020-1-1
10 2020-1-1
11 2020-1-1
12 2020-1-1
13 2020-1-1
Name: 日期, dtype: object

【代码示例-将日期列的数据类型转换为日期类型】

data = pd.to_datetime(df["日期"], format = '%Y-%m-%d')
print(data)

【终端输出】

0    2020-01-01
1 2020-01-01
2 2020-01-01
3 2020-01-01
4 2020-01-01
5 2020-01-01
6 2020-01-01
7 2020-01-01
8 2020-01-01
9 2020-01-01
10 2020-01-01
11 2020-01-01
12 2020-01-01
13 2020-01-01
Name: 日期, dtype: datetime64[ns]

【综合代码】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\16\销售表.csv"

# 调用函数:库名.函数名()
# pd是库名
# read_excel是函数名
# io参数=file,file是路径
df = pd.read_csv(file)

# 查看DataFrame每一列的数据类型
df.info()

# 查看日期列数据
df["日期"]

# 将`日期`列的数据类型转换为日期类型
data = pd.to_datetime(df["日期"], format = '%Y-%m-%d')
print(data)

【终端输出】

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 14 entries, 0 to 13
Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 订单编号 14 non-null object
1 日期 14 non-null object
2 省 14 non-null object
3 订单量 14 non-null int64
4 单价 14 non-null int64
5 销售额 14 non-null int64
dtypes: int64(3), object(3)
memory usage: 800.0+ bytes
0 2020-01-01
1 2020-01-01
2 2020-01-01
3 2020-01-01
4 2020-01-01
5 2020-01-01
6 2020-01-01
7 2020-01-01
8 2020-01-01
9 2020-01-01
10 2020-01-01
11 2020-01-01
12 2020-01-01
13 2020-01-01
Name: 日期, dtype: datetime64[ns]


安迪python学习笔记
python学习笔记,适合初学者。
 最新文章