Pandas基础用法汇总

本文介绍了Pandas库的安装、Series和DataFrame数据结构的创建与操作,包括读取、索引、数据清洗和CSV文件的处理。详细讲解了如何利用Pandas进行数据读取、分析和格式转换,以及处理缺失值和重复数据的方法。
摘要由CSDN通过智能技术生成

目录

一、安装并导入 Pandas 模块:

二、Pandas 数据结构之 Series:

一维数组:

多维数据及索引:

 根据索引值读取数据:

根据索引值读取多个数据:

利用字典对象创建 Series:

利用索引取字典中的部分数据创建 Series:

三、Pandas 数据结构之 DataFrame:

利用二维列表创建 DataFrame:

利用字典创建 DataFrame:

利用 loc 指令获取 DataFrame 中的某行:

利用 loc 指令获取DataFrame 中的某几行:

四、Pandas 处理 CSV 文件:

打开并读取 csv 文件:

将 DataFrame 数据保存为 csv 文件:

读取 csv 文件数据(从前):

读取 csv 文件数据(从后):

获取 csv 文件信息:

判断空值:

清洗空值:

替换空值:

数学函数方法:

统一日期格式错误数据:

 替换错误数据:

删除数据:

查看与删除重复数据:


一、安装并导入 Pandas 模块:

        安装 Pandas 模块:

        在终端输入:pip install pandas

        导入 Pandas 模块:

import pandas as pd

二、Pandas 数据结构之 Series:

        series 数据类型类似一维数组,由索引和列构成。

        pd.Series( data, index, dtype, name, copy)

参数描述
data数据
index索引,默认从0开始
dtype数据类型,默认自己判断
nameseries 名称
copy拷贝数据,默认为 False

        实例:

一维数组:

a = [1,2,3]
x = pd.Series(a)
print(x)

输出:

其中, 左侧一列为索引,右侧一列为数据,下面则为数据类型。


多维数据及索引:

a=[[1,2,3],[4,5,6]]
x=pd.Series(a,index = ['a','b'])
print(x)

输出:

 可知:多维数组,series 会将其“视为”一维数组,以逗号分隔每一个元素;此外,索引支持自定义。


 根据索引值读取数据:

print(x['a'])

输出:


根据索引值读取多个数据:

a=[[1,2,3],[4,5,6]]
x=pd.Series(a,index = ['a','b'])
print(x[['a','b']])

输出:


利用字典对象创建 Series:

x = {'a':'apple','b':'banana'}
y = pd.Series(x)
print(y)

输出:

其中字典中的 key 值为索引,value 值为数据。


利用索引取字典中的部分数据创建 Series:

x = {'a':'apple','b':'banana','c':'cat','d':'dog'}
y = pd.Series(x,index=['a','c'],name='MySeries')
print(y)

输出:

三、Pandas 数据结构之 DataFrame:

        DataFrame 是一种表格型的数据结构,类似于二维数组,其组成方式如下:

索引列1列2...列n
...

        其中每列都是一个 Series 数据,它们的每行都共用一个索引值。

        pd.DataFrame( data, index, columns, dtype, copy)

参数描述
index行标签(索引值)
columns列标签,默认为 0,... ,n

        实例:

利用二维列表创建 DataFrame:

x = [['apple','fruit'],['cat','animal']]
y = pd.DataFrame(x,index=['a','c'],columns=['name','type'])
print(y)

输出:


利用字典创建 DataFrame:

x = {'name':['apple','cat'],'type':['fruit','animal']}
y = pd.DataFrame(x,index=['a','c'])
print(y)

或:

x = [{'name':'apple','type':'fruit'},{'name':'cat','type':'animal'}]
y = pd.DataFrame(x,index=['a','c'])
print(y)

输出同上


利用 loc 指令获取 DataFrame 中的某行:

x = [{'name':'apple','type':'fruit'},{'name':'cat','type':'animal'}]
y = pd.DataFrame(x,index=['a','c'])
print(y.loc['a'])

输出:

返回的数据类型为 Series


利用 loc 指令获取DataFrame 中的某几行:

x = [{'name':'apple','type':'fruit'},{'name':'cat','type':'animal'}]
y = pd.DataFrame(x,index=['a','c'])
print(y.loc[['a','c']])

输出:

 返回的数据类型为 DataFrame


四、Pandas 处理 CSV 文件:

        文件操作:

打开并读取 csv 文件:

pd.read_csv('<filename>.csv')


将 DataFrame 数据保存为 csv 文件:

<DataFrame>.to_csv('<filename>.csv')


        数据处理:

读取 csv 文件数据(从前):

<DataFrame>.hand(n)

读取 csv 文件前面 n 行的数据


读取 csv 文件数据(从后):

<DataFrame>.tail(n)

读取 csv 文件后面的 n 行数据


获取 csv 文件信息:

<DataFrame>.info()

x = {'name':['apple','cat'],'type':['fruit','animal']}
y = pd.DataFrame(x,index=['a','b'])
print(y)
y.info()

输出:

 详解(此处解释 .info() 的输出):

<class 'pandas.core.frame.DataFrame'>:数据类型为 DataFrame

Index: 2 entries:数据总共有两行

a to b:第一行数据编号为 a,最后一行数据编号为 b

Data columns (total 2 columns):数据总共有两列

#:列编号

Column:列名

Non-Null Count:非空数据数

Dtype:列类型

dtypes:每种类型的列有几个


        数据整理:

判断空值:

<DataFarme>.isnull()

Pandas 认为:NaN、nan、NA、n/a 均为空值

而 NAN、nAn 等均不为空值


清洗空值:

<DataFrame>.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

参数描述
axis0(默认):逢空值删除整行
1:缝空值删除整列
how'any':一行(列)中有一个元素为空值则删
'all':一行(列)中全为空值则删除
thresh至少有 n 个非空数据才不会被删除
subset检查空值的范围,按行删填列名,按列删填行名
inplaceFalse(默认):原值不变,返回值为清洗后数据
True:原值为清洗后数据,返回值为 None

 有时我们不需要的数据并不一定是”空的“,也有可能是一些符号,我们可以对其进行如下处理(以不需要的数据为’--‘为例):

x=pd.read_csv('<filename>.csv',na_values='--')

即在读取 csv 文件时添加一个参数 na_values 来增加我们认定的空值。


替换空值:

<DataFrame>.fillna( data, inplace = False)

使用数据 data 来替换空值。


数学函数方法:

均值:mean()

中位数:median()

众数:mode()


统一日期格式错误数据:

x = {"Date": ['2004.07.20', '2004/07/20' , '20040720','2004-07-20']}
y = pd.DataFrame(x)
y['Date'] = pd.to_datetime(x['Date'])
print(y)

输出:

可以将规则的日期格式统一


 替换错误数据:

<DataFrame>.loc( index, 'column')

x = {'Name':['Yu','Zhang','Li'],'Age':['18','50','130']}
y = pd.DataFrame(x)
print(y)
y.loc[2,'Age']='100'
print(y)

输出:

 

还可以利用循环语句批量替换数据:

for i in y.index:
    if int(y.loc[i,'Age'])>100:
        y.loc[i,'Age']='100'
print(y)

 输出同上


删除数据:

x = {'Name':['Yu','Zhang','Li'],'Age':['18','50','130']}
y = pd.DataFrame(x)
for i in y.index:
    if int(y.loc[i,'Age'])>100:
        y.drop(i,inplace=True)
print(y)

输出:

查看与删除重复数据:

x = {'Name':['Yu','Zhang','Yu'],'Age':['18','50','18']}
y = pd.DataFrame(x)
print(y.duplicated())
y.drop_duplicates(inplace=True)
print(y)

输出:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六月渔烬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值