Pandas基础学习

本文详细介绍了Pandas库的基础知识,包括如何安装和导入Pandas,以及核心数据结构Series和DataFrame的创建、操作和属性。重点讲解了Series的四种创建方法、DataFrame的两种创建方式,以及如何进行索引、切片、数据统计和合并操作。此外,还涵盖了文件的读写、字符串处理和时间格式转换。通过实例展示了如何在实际数据分析中运用Pandas进行数据处理。
摘要由CSDN通过智能技术生成

Pandas学习1

一、pandas使用准备

1.安装Pandas:

pip install pandas

2.导包:

import pandas as pd

二、 Pandas-Series

1.Series说明

是一个一维数据结构,它由index和value组成,Series是一种类似于一维数组的对象,它由一组数据和一组与之相关的索引组成。

2.Series创建

(1)列表创建法:

a = pd.Series([1,2,3],index=[‘a’,‘b’,‘c’])

(2)标量值创建法:

a = pd.Series(25,index=[‘a’,‘b’,‘c’])

(3)python字典法:

a={‘o’:3500,‘t’:7100,‘u’:5000} b = pd.Series(a)

(4)ndarray法:

ojb = pd.Series(np.arange(5),index=np.arange(9,4,-1))

3.Series操作

(1)index和values操作:

a.index # 获取索引值
a.values # 获取值

(2)索引和切片操作

a.index[x:y]
a.values[x:y]

二、Pandas-DataFrame

1.DataFrame说明

DataFrame是一个二维表格型数据结构。DataFrame对象既有行索引,又有列索引。其中,行索引表明不同行,横向索引。列索引表名不同列,纵向索引。

2.DataFrame创建

(1)二维数组创建

df=df([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]],#设置值
index=list([‘第一行’,‘第二行’,‘第三行’,‘第四行’]), #设置行索引
columns=list([‘第一列’,‘第二列’,‘第三列’,‘第四列’])) #设置列索引

(2)字典创建

student={‘name’:[‘小王’,‘晓东’,‘小敏’],
‘sage’:[22,21,20],
‘ssex’:[‘man’,‘man’,‘woman’]}
student = df(student)

3.DataFrame属性和操作

(1)基础属性操作(index,Value等值)

(1)df.shape #行数和列数   (2)df.dtypes #列数据类型
(3)df.ndim #数据维度    (4)df.index #行索引
(5)df.columns #列索引    (6)df.values #对象值

(2)显示信息操作

(1)df.head(3) #显示前3行    (2)df.tail(3) #显示末尾3行
(3)df.info() #显示信息概述,行数,列数,索引,列非空值个数,列类型等。
(4)df.describe() # 统计信息,均值,最大值,最小值,标准差等。

3.索引操作(获取标签所指定列的数据)

(1)标签索引loc

Dataframe可以通过标签索引loc获取标签所指定列的数据。
student.loc[[0, 1] , [‘name’, ‘sage’]]
student.loc[0 : 3 , [‘name’, ‘ssex’]]

(2)位置索引loc

Dataframe可以通过位置索引iloc获取位置所指定列的数据
student.iloc[[0, 1] , [0, 1]]
student.iloc[0 : 3, [0,2]]

(3)布尔索引

student[‘sage’]<=21    student[student[‘sage’]<=21]
输出结果为:      name   sage   ssex
0 False       1    晓东    21    man
1 True         2    小敏    20    woman
2 True

(4)改变值

student.loc[1,‘sage’] = 23 或者 student.iloc[1,1] = 23

(5)删除指定索引对象

3.5删除指定索引对象
drop()能够删除DataFrame指定行或列索引。
student=student.drop([0]) #将0号同学的信息删除
student=student.drop([‘sage’],axis=1) #将同学的年龄信息删除

5.合并操作

(1)concat操作

concat把两个表拼在一起或堆叠。这个函数的关键参数应该是 axis,用于指定连接的轴向。axis=0垂直堆叠,axis=1 水平堆叠,默认是axis=0。
s = pd.concat([a1, a2], axis=1)

(2)merage操作

merge表示按照指定的列把数据按照一定的方式合并到一起,有四种方式

(1)默认的为交集inner

a1.merge(a2,left_on=“第二列”,right_on=‘第三列’,how= ‘inner’)
输出结果
0 1 2 2 5

(2)并集outer,NaN补全

a1.merge(a2,left_on=“第二列”,right_on=‘第三列’,how= ‘outer’)
输出:
第一列 第二列 第三列 第四列
0 1.0 2.0 2.0 5.0
1 5.0 6.0 NaN NaN
2 NaN NaN 3.0 8.0

(3)以左边为准left,NaN补全

a1.merge(a2,left_on=“第二列”,right_on=‘第三列’,how= ‘left’)
输出结果
第一列 第二列 第三列 第四列
0 1 2 2.0 5.0
1 5 6 NaN NaN

5.统计操作

(1)统计函数

方法 说明
.sum() : 计算数据的总和,按0轴计算,下同
.count() : 非NaN(缺失值)的数量
.mean() .median(): 计算数据的算术平均值、算术中位数
.var() .std() : 计算数据的方差、标准差
.min() .max() :计算数据的最小值、最大值
.describe() :输出所有列的统计信息。
info() :检查缺失值情况

(2)相关性统计分析

协方差
两个事物,表示为X和Y,如何判断它们之间的存在相关性?
RUNOOB 图标
• 协方差>0,X和Y正相关
• 协方差<0,X和Y负相关
• 协方差=0,X和Y独立无关
相关分析函数包括cov():计算协方差矩阵

(3)分组统计GroupBy

(1)拆分(Spliting):将数据进行分组
(2)应用(Applying):对每组应用函数进行计算
(3)合并(Combining):将计算结果进行数据聚合
使用GroupBy()可以沿着任意轴进行分组,并且将分组依据的键作为每组的组名,有一下3种用法:
(1)df.groupby(key)
(2)df.groupby(key,axis=1)
(3)df.groupby([key1,key2])
同时也可以用来计算 例如:
(1)统计每个班分数的总和:student.groupby(‘班级’).sum()。
(2)将每个班按照性别统计均值:student.groupby([‘班级’,‘性别’]).mean()

6.数据排列

(1)sort_values

该方法根据数据进行排序,可以分为sort column和sort by column,注意加以区分。

sort column

从DataFrame中挑取出来具体的列,然后对该行进行排序
dataframe.colname.sort_values()
dataframe.colname.sort_values(ascending = False)
dataframe[“colname”].sort_values()
dataframe[“colname”].sort_values(ascending = False)

sort by column

这种方法是按照给定的列的值对DataFrame数据进行排序
单列排序
dataframe.sort_values(by=“colname”)
多列排序
dataframe.sort_values( [“col1”, “col2”,…“coln”])

(2)sort_index

该方法可以根据行名排序,也可以根据列名排序,区别在于axis,axis = 0 给列名排序,ascending指定排序方法

7.字符串操作

(1)选择字符串内数据

str=[‘东’,‘南’]
room1=room[room[‘房屋朝向’].isin(str)] #选择出房屋朝东和南的

(2)字符串映射数字map方法

label_mapping = {“东”: 1,“南”: 2, “西”: 3, “北”: 4}
room[‘房屋朝向’] = room.房屋朝向.map(label_mapping)

(3)时间字符串转时间格式

(1)to_datetime将字符串格式转换为日期格式
room[‘时间’] =pd.to_datetime(room[‘时间’],format=’%H:%M’)
(2) strptime将字符串格式转换为日期格式
room[‘时间’]= room[‘时间’].apply(lambda x:datetime.datetime.strptime(x,’%H:%M’))
(3)strftime将日期格式转换为字符串格式
room[‘时间’]= room[‘时间’].apply(lambda x:datetime.datetime.strftime(x,’%H-%M’))

文件读写操作

(1)读入文件

pd.read_csv(filepath, sep=’,’, delimiter=None, header=‘infer’, names=None, index_col=None, prefix=None, nrows=None, encoding=None, skiprows=0)
常见参数如下:
(1)filepath:文件所在处的路径
(2)sep:指定分隔符,默认为逗号’,’
(2)delimiter : str, default None定界符,备选分隔符(如果指定该参数,则sep参数失效)
(3)header:指定哪一行作为表头。默认设置为0(即第一行作为表头),如果没有表头的话,要修改参数,设置header=None
(4)names:指定列的名称,用列表表示。一般我们没有表头,即header=None时,这个用来添加列名就很有用啦。
(5)index_col:指定哪一列数据作为行索引,可以是一列,也可以多列。多列的话,会看到一个分层索引
(6)prefix:给列名添加前缀。如prefix=“x”,会出来"x1"、“x2”、“x3”
(7)nrows : 需要读取的行数(从文件头开始算起)
(8)encoding:乱码的时候用这个就是了
(9)skiprows :忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。

(2)保存文件

pd.to_csv(path,sep,na_rep,columns,header,index)
参数解析:
(1)path:字符串,放文件名、相对路径、文件流等。
(2)sep:字符串,分隔符,跟read_csv()的一个意思。
(3)na_rep:字符串,将NaN转换为特定值。
(4)columns:列表,指定哪些列写进去。
(5)header:默认header=0,表示有表头;header= None,表示没有表头。
(6)index:默认True,设置表格有索引;False,设置表格没有索引。

(3)按格式输出

DataFrame.to_html(“test.html”)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值