Pandas数据分析常用函数的使用

 更新时间:2023年1月17日 08:30  点击:46 作者:我的小毛驴呢

Pandas是数据处理和分析过程中常用的Python包,提供了大量能使我们快速便捷地处理数据的函数和方法,在此主要整理数据分析过程pandas包常用函数,以便查询。更多函数学习详见padans官网

一、数据导入导出

pandas提供了一些用于将表格型数据读取为DataFrame对象函数,如read_csv,read_table。输入pd.read后,按Tab键,系统将把以read开头的函数和模块都列出来,根据需要读取的文件类型选取。

#包的安装导入
import pandas as pd

#查询帮助文档
pd.read_csv?

#数据载入(仅罗列一部分常用参数)
df = pd.read_csv(
     filePath, #路径 
     sep=',',  #分隔符
     encoding='UTF-8', #用于unicode的文本编码格式,如GBK,UTF-8
     engine='python',
     header = None, #第一行不作为列名
     names= [['col1','col2']], #字段名设置
     index_col=None, 
     skiprows=None, #跳过行None
     error_bad_lines=False #错误行忽略    
)
# 数据导出
df.to_csv(filePath,
           sep = ',',
           index = False)

二、数据加工处理

1)重复值处理

# Pandas提供了duplicated、Index.duplicated、drop_duplicates函数来标记及删除重复记录

#找出重复行位置
dIndex = df.duplicated()
#根据某些列找出重复位置
dIndex = df.duplicated('id')
dIndex = df.duplicated(['id', 'key'])
#根据返回值提取重复数据
df[dIndex]
#删除重复行
newdf = df.drop_duplicated()
#去掉重复数据
newdf = df.drop_duplicated(keep = False)
#根据'key'字段去重,并保留重复key字段第一个
##subset:指定的标签或标签序列,仅删除这些列重复值,默认情况为所有列
##keep:确定要保留的重复值:first(保留第一次出现的重复值,默认)last(保留最后一次出现的重复值)False(删除所有重复值)
newdf = df.drop_duplicated(subset = ['key'],keep = 'first')

2)缺失值处理

# 输出某列是否有为空值
print(df.isnull().any(axis = 0))
# 获取空值所在的行
df[df.isnull().any(axis = 1)]
# 空值填充
df.fillna('未知')
# 删除空值
newDF = dropna(axis="columns",how="all",inplace=False) #how可选有any和all,any表示只要有空值出现就删除,all表示全部为空值才删除,inplace表示是否替换掉原本数据

3)空格处理

newName = df['name'].str.lstrip()
newName = df['name'].str.rstrip()
newName = df['name'].str.strip()

4)字段拆分

newDF = df['name'].str.split(' ', 1, True)

5)筛选数据

#单条件
df[df.comments>10000]
#多条件
df[df.comments.between(1000, 10000)]
#过滤空值所在行
df[pandas.isnull(df.title)]
#根据关键字过滤
df[df.title.str.contains('台电', na=False)]
#~为取反
df[~df.title.str.contains('台电', na=False)]
#组合逻辑条件
df[(df.comments>=1000) & (df.comments<=10000)]

6)随机抽样

#设置随机种子
numpy.random.seed(seed=2)
#按照个数抽样
data.sample(n=10)
#按照百分比抽样
data.sample(frac=0.02)
#是否可放回抽样,
#replace=True,可放回, 
#replace=False,不可放回
data.sample(n=10, replace=True)

7)数据匹配

items = pandas.read_csv(
    'D:\\PDA\\4.12\\data1.csv', 
    sep='|', 
    names=['id', 'comments', 'title']
)
prices = pandas.read_csv(
    'D:\\PDA\\4.12\\data2.csv', 
    sep='|', 
    names=['id', 'oldPrice', 'nowPrice']
)
#默认只是保留连接上的部分
itemPrices = pd.merge(
    items, 
    prices, 
    left_on='id', 
    right_on='id',
    how = 'left'
)
#how:连接方式,有inner、left、right、outer,默认为inner;

8)数据合并

data = pd.concat([data1, data2, data3])

9)时间处理

data['时间'] = pandas.to_datetime(
    data.注册时间, 
    format='%Y/%m/%d'
)
data['格式化时间'] = data.时间.dt.strftime('%Y-%m-%d')
data['时间.年'] = data['时间'].dt.year
data['时间.月'] = data['时间'].dt.month
data['时间.周'] = data['时间'].dt.weekday
data['时间.日'] = data['时间'].dt.day
data['时间.时'] = data['时间'].dt.hour
data['时间.分'] = data['时间'].dt.minute
data['时间.秒'] = data['时间'].dt.second

10)数据标准化

data['scale'] = round(
    (
        data.score-data.score.min()
    )/(
        data.score.max()-data.score.min()
    )
    , 2
)

11)修改列名和索引

#将id列设为索引
df = df.set_index('id')

12)排序

#选定列排序
df.sort_values(by=['age', 'gender'], ascending=[False, True], inplace=True, ignore_index=True)

三、列表格式设置

pd.set_option('display.max_rows',xxx) # 最大行数
pd.set_option('display.min_rows',xxx) # 最小显示行数
pd.set_option('display.max_columns',xxx) # 最大显示列数
pd.set_option ('display.max_colwidth',xxx) #最大列字符数
pd.set_option( 'display.precision',2) # 浮点型精度
pd.set_option('display.float_format','{:,}'.format) #逗号分隔数字
pd.set_option('display.float_format',  '{:,.2f}'.format) #设置浮点精度
pd.set_option('display.float_format', '{:.2f}%'.format) #百分号格式化
pd.set_option('plotting.backend', 'altair') # 更改后端绘图方式
pd.set_option('display.max_info_columns', 200) # info输出最大列数
pd.set_option('display.max_info_rows', 5) # info计数null时的阈值
pd.describe_option() #展示所有设置和描述
pd.reset_option('all') #重置所有设置选项

到此这篇关于Pandas数据分析常用函数的使用的文章就介绍到这了,更多相关Pandas数据分析常用函数内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.csdn.net/haoqing_he/article/details/128410686

相关文章

  • pandas pd.read_csv()函数中parse_dates()参数的用法说明

    这篇文章主要介绍了pandas pd.read_csv()函数中parse_dates()参数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-05
  • Pandas实现DataFrame按行求百分数(比例数)

    今天小编就为大家分享一篇Pandas实现DataFrame按行求百分数(比例数),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-09
  • python使用pandas按照行数分割表格

    本文主要介绍了python使用pandas按照行数分割表格,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-13
  • 解决python3安装pandas出错的问题

    这篇文章主要介绍了解决python3安装pandas出错的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-05-20
  • 用pandas划分数据集实现训练集和测试集

    这篇文章主要介绍了用pandas划分数据集实现训练集和测试集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-20
  • Python数据分析之pandas比较操作

    比较操作是很简单的基础知识,不过Pandas中的比较操作有一些特殊的点,本文介绍的非常详细,对正在学习python的小伙伴们很有帮助.需要的朋友可以参考下...2021-05-20
  • pandas 读取excel文件的操作代码

    pandas 读取excel文件使用的是 read_excel方法。本文将详细解析read_excel方法的常用参数,以及实际的使用示例,感兴趣的朋友跟随小编一起看看吧...2021-11-01
  • pandas 实现将两列中的较大值组成新的一列

    这篇文章主要介绍了pandas 实现将两列中的较大值组成新的一列,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-26
  • 对python pandas中 inplace 参数的理解

    这篇文章主要介绍了对python pandas中 inplace 参数的理解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-28
  • pandas 实现某一列分组,其他列合并成list

    这篇文章主要介绍了pandas 实现某一列分组,其他列合并成list的案例。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-26
  • Python Pandas常用函数方法总结

    今天给大家带来的是关于Python的相关知识,文章围绕着Pandas常用函数方法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下...2021-06-16
  • python 用pandas实现数据透视表功能

    这篇文章主要介绍了python 用pandas实现数据透视表功能的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下...2020-12-21
  • pandas按条件筛选数据的实现

    这篇文章主要介绍了pandas按条件筛选数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-20
  • Pandas 解决dataframe的一列进行向下顺移问题

    今天小编就为大家分享一篇Pandas 解决dataframe的一列进行向下顺移问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-09
  • pandas 时间偏移的实现

    时间偏移就是在指定时间往前推或者往后推一段时间,即加减一段时间之后的时间,本文使用Python实现,感兴趣的可以了解一下...2021-08-08
  • pandas DataFrame运算的实现

    这篇文章主要介绍了pandas DataFrame运算的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-14
  • 解决python pandas读取excel中多个不同sheet表格存在的问题

    这篇文章主要介绍了解决python pandas读取excel中多个不同sheet表格存在的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-14
  • 快速解释如何使用pandas的inplace参数的使用

    这篇文章主要介绍了快速解释如何使用pandas的inplace参数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-23
  • 基于pandas向csv添加新的行和列

    这篇文章主要介绍了基于pandas向csv添加新的行和列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-26
  • Pandas使用stack和pivot实现数据透视的方法

    笔者最近正在学习Pandas数据分析,将自己的学习笔记做成一套系列文章。本节主要记录Pandas中使用stack和pivot实现数据透视。感兴趣的小伙伴们可以参考一下...2021-09-05