python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Pandas常用数据类型

Pandas中的常用数据类型详解

作者:Happy look

文章总结:介绍了pandas库中常用的四种数据结构:Series、DatetimeIndex、DataFrame和Panel,详细解释了Series和DatetimeIndex的基本组成和常用操作,并提供了生成时间序列对象的函数date_range()及其参数说明

Pandas常用数据类型

扩展库pandas常用的数据结构

如下:

(1)Series:带标签的一维数组

(2)DatetimeIndes:时间序列

(3)DateFrame:带标签且大小可变的二维表格结构

(4)Panel:带标签且大小可变的三维数组

1.一维数组与常用操作

Series由索引和值两部分组成,是一个类似于字典的结构。

其中值的类型可以不同,如果在创建时没有明确指定索引,则会自动使用从0开始的非负整数作为索引。

import pandas as pd
import matplotlib.pyplot as plt

# 设置输出结果列对齐
pd.set_option('display.unicode.ambiguous_as_wide',True)
pd.set_option('display.unicode.east_asian_width',True)

# 自动创建从0开始的非负整数索引
s1=pd.Series(range(1,20,5))
# 使用字典创建Series,使用字典的“键”作为索引
s2=pd.Series({'语文':90,'数学':92,'Python':98,'物理':87,'化学':92})
# 修改指定索引对应的值
s1[3]=-17
s2['语文']=94

print('s1原始数据'.ljust(20,'='))
print(s1,'\n')
print('对s1所有数据求绝对值'.ljust(20,'='))
print(abs(s1),'\n')
print('s1的每行索引前面加上数字2'.ljust(20,'='))
print(s1.add_prefix(2),'\n')

print('s2原始数据'.ljust(20,'='))
print(s2,'\n')
print('s2数据的直方图'.ljust(20,'='))
s2.hist()
plt.show()
print('s2的每行索引后面加上_张三'.ljust(20,'='))
print(s2.add_suffix('_张三'),'\n')
print('s2最大值的索引'.ljust(20,'='))
print(s2.idxmax(),'\n')
print('测试s2的值是否在指定区间内'.ljust(20,'='))
print(s2.between(90,94,inclusive=True),'\n')
print('查看s2中90分以上的数据'.ljust(20,'='))
print(s2[s2>90],'\n')
print('查看s2中大于中值的数据'.ljust(20,'='))
print(s2[s2>s2.median()],'\n')
print('s2与数字之间的运算'.ljust(20,'='))
print(round((s2**0.5)*10,1),'\n')
print('s2中最小的2个值'.ljust(20,'\n'))
print(s2.nsmallest(2),'\n')

# 两个等长Series对象之间可以进行四则运算和幂运算
# 只对两个Series对象中都有的索引对应的值进行计算
# 非共同索引对应的值为空值
print('两个Series对象相加'.ljust(20,'='))
print(pd.Series(range(5))+pd.Series(range(5,10)),'\n')

# pipe()方法可以实现函数链式调用的功能
print('每个值加3之后再乘以3'.ljust(20,'='))
print(pd.Series(range(5)).pipe(lambda x:x+3).pipe(lambda x:x*3),'\n')
print('每个值的平方对5的余数'.ljust(20,'='))
print(pd.Series(range(5)).pipe(lambda x,y,z:(x**y)%z,2,5),'\n')

# apply()方法用来对Series对象的值进行函数运算
print('每个值加3'.ljust(20,'='))
print(pd.Series(range(5)).apply(lambda x:x+3),'\n')

print('标准差、无偏方差、无偏标准差'.ljust(20,'='))
print(pd.Series(range(5)).std(),'\n')
print(pd.Series(range(5)).var(),'\n')
print(pd.Series(range(5)).sem(),'\n')

print('检查是否存在等价于True的值'.ljust(20,'='))
print(any(pd.Series([3,0,True])),'\n')

print('查看是否所有值都等价于True'.ljust(20,'='))
print(all(pd.Series([3,0,True])))

2.时间序列与常用操作

使用pandas的date_range()函数生成时间序列对象:

date_range(start=None,end=None,periods=None,freq='D',tz=None,normalize=False,name=None,closed=None,**kwargs)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文