Python自学入门(六):Pandas之数据结构
创始人
2024-06-03 14:19:57
0

Python自学入门(一):环境安装
Python自学入门(二):数据类型和运算符
Python自学入门(三):数据类型详解
Python自学入门(四):流程控制
Python自学入门(五):函数和模块

五、Pandas

Pandas是python中用于数据分析的一个扩展库,安装pandas,在命令行中执行

pip3 install pandas

在这里插入图片描述

安装成功后,执行可以在程序中引入pandas

import pandas

5.1 数据结构

Pandas中的数据结构,包括Series和DataFrame两种。

Series相当与一维数组,可以看作表格中的一个列,可以保存任何类型的数据,通过索引访问元素。

DataFrame是二维数组(表格),由行和列组成。

在这里插入图片描述

5.1.1 Series

pandas.Series( data, index, dtype, name, copy)
  • data:一组数据。
  • index:数据索引标签,如果不指定,默认从 0 开始。
import pandas
a = ['Java','Python','HTML5']
s1 = pandas.Series(a)
print(s1)
print(s1[0]) #根据索引访问元素,索引默认从0开始递增
s2 = pandas.Series(a,index=['x','y','z'])  #指定索引
print(s2)
print(s2['y'])  #根据索引访问
#使用字典创建Series,key会变成索引
dic={"k1":"java","k2":"python","k3":"h5"}
s3 = pandas.Series(dic)
print(s3)
#只需要字典中的一部分,指定需要保留的key
s4 = pandas.Series(dic,index=["k1","k2"])
print(s4)
print(s4.index)  #索引
print(s4.values) #值

5.1.2 DataFrame

在这里插入图片描述

DataFrame可以被看做是多个Series组成的表格,每一列是一个Series,它们共用一个索引。

  • data:一组数据。
  • index:数据索引标签,如果不指定,默认从 0 开始。
  • columns:列名
#使用列表创建
data1=[['Kate',18],['John',17],['Tom',19]]
df1 = pandas.DataFrame(data1,columns=['Name','Age'])
print(df1)
#使用 ndarrays 创建
data2 = {'Name':['Kate', 'John', 'Tom'], 'Age':[18, 17, 19]}
df2 = pandas.DataFrame(data2,index=['A','B','C'])
print(df2)
#使用字典创建
data3 = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df3 = pandas.DataFrame(data3)
print(df3)

DataFrame常用属性

grades=['A','B','C','D']
subject=['数学','语文','英语']
array=[[5,30,40],[23,19,46],[76,35,43],[56,43,21]]
data=pandas.DataFrame(data=array,index=grades,columns=subject)
print(data.shape)  #形状(行,列)
print(data.index)  #索引
print(data.columns) #列名
print(data.values)  #值
print(data.T)  #转置
print(data.head(3))  #前几行
print(data.tail(2))  #后几行
#修改索引,不支持单独修改某一行的索引,需要全部修改
grades=['甲','乙','丙','丁']
data.index=grades
print(data)
d1=data.reset_index() #旧索引会变成一列
print(d1)
d2=data.reset_index(drop=True) #不保留旧索引
print(d2)
d3=data.set_index('数学') #设置某一列为索引,drop=True删除原来的列
print(d3)

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...