Python--pandas核心数据结构


1. Series

Series 可以理解为一个一维数组,index 名称可以自己改动,类似于定长的有序字典,有 index 与 value。

1.1 Series 对象的创建

import pandas as pd
import numpy as np

# 创建一个空的 Series
s1 = pd.Series()

# 从 ndarray 创建一个 Series
data = np.array(['zs', 'ls', 'ww', 'zl'])
s2 = pd.Series(data)
# 创建 Series 时修改 index
s3 = pd.Series(data, index=['100', '101', '102', '103'])

# 从字典创建一个 Series
s4 = pd.Series({
   '100': 'zs', '101': 'ls', '102': 'ww'})

# 从标量创建一个 Series
s5 = pd.Series(5, index=[0,1,2,3])

print(s1, end='\n\n')
print(s2, end='\n\n')
print(s3, end='\n\n')
print(s4, end='\n\n')
print(s5, end='\n\n')

注意:
Series 为一维数组,不为二维数组,只是输出为竖直方向输出。
第一列为索引,第二列为值

在这里插入图片描述

1.2 Series 对象的数据访问

import pandas as pd
import numpy as np

s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s, end='\n\n')

# 使用数字索引检索元素
print(s[0], end='\n\n')
print(s[:3], end='\n\n')
print(s[:-3], end='\n\n')

# 使用标签索引检索元素
print(s['a'], end='\n\n')
# 标签索引切片,包含开始和结束位置
print(s['a':'c'], end='\n\n')
# 支持索引掩码
print(s[['a', 'b', 'c']])

在这里插入图片描述

1.3 Series 常用属性

属性 说明
values 返回 ndarray
index 返回索引序列
dtype 返回数据类型
size 返回元素个数
ndim 返回维数
shape 返回每维的元素个数(维度)
import pandas as pd
import numpy as np

s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s, end='\n\n')

print(s.values)
print(s.index)
print(s.dtype)
print(s.size)
print(s.ndim)
print(s.shape)

在这里插入图片描述

2. pandas 日期类型

pandas 支持多种格式字符串数据转换为日期类型数据

2.1 使用 pandas 将字符串转为日期类型数据

import pandas as pd
import numpy as np

dates = pd.Series([
    '2011',
    '2011-02',
    '2011-03-01',
    '2011-03-01 11:11:11',
    '2011/3/1',
    '01 Jun 2011'
])
dates = pd.to_datetime(dates)
print(dates)

在这里插入图片描述

2.2 获取时间的某个日历字段的数值

Series.dt.日期字段

Series 提供的日期字段:
在这里插入图片描述在这里插入图片描述

import pandas as pd
import numpy as np

dates = pd.Series([
    '2011',
    '2011-02',
    '2011-03-01',
    '2011-03-01 11:11:11',
    '2011/3/1',
    '01 Jun 2011'
])
dates = pd.to_datetime(dates)
print(dates)
print(dates.dt.weekday) # 周几
print(dates.dt.quarter) # 第几季度

在这里插入图片描述

2.3 日期计算

pandas 支持计算两日期间的偏移时间。

import pandas as pd
import numpy as np

dates = pd.Series([
    '2011',
    '2011-02',
    '2011-03-01',
    '2011-03-01 11:11:11',
    '2011/3/1',
    '01 Jun 2011'
])
dates = pd.to_datetime(dates)

# 获取时间偏移量
delta = dates-pd.to_datetime('1970-1-1')
print(delta)
# 获取时间偏移量的天数
# delta.dt.days 时间偏移量只有这一个属性
print(delta.dt.days)

在这里插入图片描述

2.4 生成一组时间序列

通过指定周期和频率,使用 data_range() 函数可以创建日期序列。默认情况下,频率为 ‘D’ (即以 Day 为单位) 。

import pandas as pd
import numpy as np

# 从 2019-10-1(包含) 开始向后取 7 天,默认日期间隔为 天
dates = pd.date_range('2019-10-1', periods=7)
print(dates)

# 修改日期间隔为 月
# 每个月的天数不一样,输出的为每个月的最后一天的日期
dates = pd.date_range('2019-10-1', periods=7, freq='M')
print(dates)

# 日期间隔为工作日 B
dates = pd.date_range('2019-10-1', periods=7, freq='B')
print
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值