【目录】
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数据类型】
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]