第八章Pandas

安装pandas命令:pip install pandas查看是否安装包: pip listpandas数据类型Series是由相同数据类型组成的一维数组,大小不可变。DataFrame:二维的表格型数据结构,数据帧(DataFrame)是大小可变的数据结构,每列可以是不同的数据类型(整型、字符串、布尔值等)面板(Panel)可以由不同的数据类型构成的三维数据结构,Panel是DataFrame的容器一维数据结构:Series对象#查看列索引print(df...
摘要由CSDN通过智能技术生成

安装pandas

命令:pip install pandas

 查看是否安装包: pip  list 

pandas数据类型

Series是由相同数据类型组成的一维数组,大小不可变。

DataFrame:二维的表格型数据结构,数据帧(DataFrame)是大小可变的数据结构,每列可以是不同的数据类型(整型、字符串、布尔值等)

面板(Panel)可以由不同的数据类型构成的三维数据结构,Panel是DataFrame的容器

一维数据结构:Series对象

#查看列索引
print(df2.columns)
#查看行索引
print(df2.index)

 


使用Pandas.Series

#pandas.Series(data,index,dtype,copy)

#data:数据,可以是序列类型,可以是int

#index:索引值必须是唯一的,与data的长度相同,默认为np.arange(n)

#dtype:数据类型

#cope:是否复制数据,默认为False

#打印左侧为索引,右侧为数据

import pandas as pd
import numpy as np
a = np.array([1,2,3,4,5])
s1 = pd.Series(a,index=['a','b','c','d','e'],copy = False)
#如果全部是int类型,那么打印s1会显示是int类型
s1 = pd.Series([1,2,3,4]) #dtype: int64
print(s1)
#如果什么数据类型都存在,那么打印s1会显示object类型的
s1 = pd.Series([1,"a",0.5,["张三","李四"]])#dtype: object
print(s1)
s1 = pd.Series([1,"a",0.5,["张三","李四"]],index=['a','b','c','d'])
s1 = pd.Series([1,2,3,4],index=['a','b','c','d'],dtype=np.float32)
"""
copy=True后,数据x不会改变,数据s1会改变
copy=False,数据x会改变,数据s1会改变
"""
x=np.array([10,20,30,40])
s1 = pd.Series(x,index=['a','b','c','d'],copy=True)
s1['a']=100
print(s1)
print(x)


从ndarray创建一个Series

x=np.array([10,20,30,40])
s1 = pd.Series(x)
s1 = pd.Series(x,index=['a','b','c','d'])
print(s1)


从字典创建一个Series

由于我们的Series有索引有数据,和我们的字典很像,字典是有key和vaule

#利用数据是字典的列表创建

#1. k变成列标签

#2.没有数据的用NaN

#a是索引 100数据
x={'a':100,'b':200,'c':300,'d':400}
s1 = pd.Series(x)
#设置索引
s1 = pd.Series(x,index=['a','b','c','d'])
#如果设置的索引位置换一下呢,数据也会跟着换
s1 = pd.Series(x,index=['a','c','d','b'])
#如果设置的索引,在字典中不存在呢,为nan
s1 = pd.Series(x,index=['a','b','e','f'])
print(s1)


单个索引获取数据

语法:s1[index]  获取单个数据

#可以使用默认索引,也可以使用自定义索引
s1 = pd.Series([1,"a",0.5,["张三","李四"]],index=['a','b','c','d'])
print(s1[0])
print(s1['a'])

多个索引获取数据

语法:
s1[list] 获取索引中的数据
s1[index1:index2] 获取从第一个索引到第二个索引的数据,左开右闭


Series对象的使用

属性和方法 说明
axes 返回Series索引列表
dtype 返回Series的数据类型
empty 判断Series是否为空,如果为空,则返回True
ndim 返回基础数据的位数,默认为:1
size 返回基础数据中的元素个数
values 将Series作为ndarray返回
head() 返回前n行
tail() 返回最后n行

| T      | 转置行和列                                         |

| ------ | -------------------------------------------------- |

| axes   | 返回一个列,行轴标签和列轴标签作为唯一的成员       |

| dtypes | 返回此对象中的数据类型                             |

| empty  | 如果DataFrame为空,则返回为True,任何轴的长度都为0 |

| ndim   | 数组维度大小,默认为2维                            |

| shape  | 返回表示DataFrame的维度的元组                      |

| size   | DataFrame中的元素个数                              |

| values | 将DataFrame中的实际数据作为NDarray返回             |

| head() | 返回开头n行                                        |

| tail() | 返回最后n行  


S3=pd.Series(['大黄','狗蛋','铁蛋','富贵'],
index=['row1','row2','row3','row4'])
S4=pd.Series([10,10,10,np.NaN],
index=['row1','row2','row3','row4'])
x1={
    'name':S3,
    'age':S4,
}
df2 = pd.DataFrame(x1)
print(df2)

print('------cumprod-----累计乘积------------')
print(df2['age'].cumprod())

#print(df2)
#print('-----head-----------返回头几行---------')
#print(df2.head(2))
#print('-----tail-----------返回最后几行 ---------')
#print(df2.tail(2))
#print('-----values--把真正的数据转换成ndarray的形式输出-----')
#print(df2.values)
#print(type(df2.values))#<class 'numpy.ndarray'>
#print('-----size--------(元素个数)-----------')
#print(df2.size)#8
#print('-----shape--------(行和列)-----------')
#print(df2.shape)#(4, 2)
#print('-----ndim--------维度数-----------')
#print(df2.ndim)#2
#print('-----empty-------------------')
#print(df2.empty)#False
#print('-----dypes--------每一列的数据类型-----------')
#print(df2.dtypes)
#name    object
#age      int64
#dtype: object
#print('------axes--------获取行和列的索引-----------')
#print(df2.axes)#[Index(['row1', 'row2', 'row3', 'row4'], dtype='object'), Index(['name', 'age'], dtype='object')]
#print('--------------T--------转置----------------')
#print(df2.T)


 创建空DataFrame对象

pandas.DataFrame( data, index, columns, dtype, copy)
data    支持多种数据类型,如:ndarray,series,map,lists,dict,constant和另一个DataFrame。
index    行标签,如果没有传递索引值,默认值为0,1,2,3,4.......
columns    列标签,如果没有传递索引值,默认值为0,1,2,3,4.......
dtype    每列的数据类型
copy    是否复制数据,默认值为False

df = pd.DataFrame()
print (df)


利用列表创建

#利用单层list

#数据变成行数据

#利用单层list
#数据变成行数据
import pandas as pd
import numpy as np
from pandas.core.frame import DataFrame
x=[1,2,3,4,5]
df2=pd.DataFrame(x)
print(df2)

 #利用双层list

#如果是True,那么x数据不改

#利用双层list
x=[
    ['zs',20],
    ['ls',30],
    ['ch',40]
]
#df3=pd.DataFrame(x,columns=['name','age'])

#如果是True,那么x数据不改变
df3= pd.DataFrame(x,columns= ['name','age'],copy=True)
df3['age'] = 100
print(df3)
print(x)

#利用数据是字典的列表创建

#1. k变成列标签

#2.没有数据的用NaN

#index 行索引  columns列索引    NaN代表为空值利用双层list           

x=[
    {'a':20,'b':30},
    {'a':100,'b':200,'c':400}
]
df4=pd.DataFrame(x)
print(df4)
#index 行索引  columns列索引    NaN代表为空值利用双层list

df4 = pd.DataFrame(x)
print(df4)
df4 = pd.DataFrame(x,index=["first","second"])
print(df4)
#如果没有c,就会默认是nun
df4 = pd.DataFrame(x,index=["first","second"],columns=['a','c'])
print(df4)


利用字典创建

#利用字典创建DataFrame
#a、b是列索引,一定要设置行索引(index),否则报错

# 字典里面的v是列表类型创建DataFrame

#利用字典创建DataFrame
#a、b是列索引,一定要设置行索引(index),否则报错
x={'馒头':1,'包子':1.5,'豆浆':2,'倔强面':16}
df1=pd.DataFrame(x,index=['价格'])
#print(df1)
# 字典里面的v是列表类型创建DataFrame
#那么默认列索引是name和age
x={
    '食品':['馒头','大米','包子'],
    '价格':[1,2,1.5]
}

df2=pd.Data
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值