Pandas 01

数据结构

一.Series

概述:

Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。

创建:

# 导入pandas
import pandas as pd

pd.Series(data=None, index=None, dtype=None)

参数:

  • data:传入的数据,可以是ndarray、list等
  • index:索引,必须是唯一的,且与数据的长度相等。如果没有传入索引参数,则默认会自动创建一个从0-N的整数索引。
  • dtype:数据的类型

操作:

#通过列表创建数据
import pandas as pd
pd.Series([3,5,6,7,8],index=np.arange(0,5))

#通过字典创建数据
color_count = pd.Series({'red':100, 'blue':200, 'green': 500, 'yellow':1000})  #通过字典创建数据
color_count

 二.DataFrame

概述:

DataFrame是一个类似于二维数组或表格(如excel)的对象,既有行索引,又有列索引

  • 行索引,表明不同行,横向索引,叫index,0轴,axis=0
  • 列索引,表名不同列,纵向索引,叫columns,1轴,axis=1

创建:

# 导入pandas
import pandas as pd

pd.DataFrame(data=None, index=None, columns=None)

参数:

  • index:行标签。如果没有传入索引参数,则默认会自动创建一个从0-N的整数索引。
  • columns:列标签。如果没有传入索引参数,则默认会自动创建一个从0-N的整数索引。

操作:

和numpy数组对比:

案例:随机生成十名学生的五门课程成绩,成绩均在[40,100)之间;

#生成不带索引的成绩
score = np.random.randint(40,100,(10,5))
score
#生成带索引的成绩
pd.DataFrame(score)
#给行索引添加学生信息,给列索引添加课程信息
subjects = ["语文","数学","英文","政治","物理"]
students=["学生{}".format(i) for i in range(score.shape[0])]  #score.shape[0])获取行的个数
data=pd.DataFrame(score,index=students,columns=subjects) #data=score,行索引为students,列索引为subjects
data
#更换行列位置
data.T  #转置  a(i,j)=b(j,i)
#获取前六名学生成绩
data.head(6) #如果不填,默认显示前五行
#获取后六名学生成绩
data.tail(6) #不补充参数,默认后5行
#不删除原来索引值的情况下生成新的行索引
data.reset_index() #drop:默认为False,不删除原来索引,如果为True,删除原来的索引值
#删除原来的行索引,生成新的行索引
data.reset_index(drop=True)
#修改全部行索引
stu=['学生_{}'.format(i) for i in range(data.shape[0])]
data.index=stu  #修改全部行索引
data

 添加行列索引:

修改行列索引信息并转置:  

 

显示特定行数据:

行索引的删除方法:

时间设置:

date_range(start=None ,end=None,periods=None,freq="B")

start:开始时间

end:结束时间

periods:时间天数

freq:递进单位,默认1天,"B"默认略过周末

示例:随机生成中位数是0,方差为1的自2017-01-01开始的八只股票的十天的涨跌幅

#随机生成中位数为0,方差为1的八只股票的十个交易日涨跌幅情况
import numpy as np
stock = np.random.normal(0,1,(8,10))
stock
#获取2017-01-01开始的十天交易日
import pandas as pd
data=pd.date_range("2017-01-01",periods=stock.shape[1],freq="B")  
data
#设置股票交易名称以及时间并生成表格
stock_name = ["stock_{}".format(i) for i in  range(stock.shape[0])]
pw=pd.DataFrame(stock,index=stock_name,columns=data)
pwpw=pd.DataFrame(stock,columns=data)
pw

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值