数据分析之Pandas从入门到放弃:代码+实战,9分钟带你推开Pandas大门!!!

简介: 数据分析之Pandas从入门到放弃:代码+实战,9分钟带你推开Pandas大门!!!

1. Pandas的基本定义


・在数据分析中,Pandas的使用频率很高

・Pandas可以说是基于NumPy构建的含有更高级数据结构和分析能力的工具包

・Series和DataFrame是两个核心数据结构,分别代表一维的序列和二维的表结构

・基于这两种数据结构,Pandas可以对数据进行导入、清洗、处理、统计和输出


2. Pandas的使用方法


2.1 Series

・Series是个定长的字典序列

・在存储的时候,相当于两个ndarry,这也是和字典结构最大的不同。因为字典结构,元素个数是不固定的

・Series的两个基本属性:

①index

②values

举个实例,来看一下 Series的使用方法:


# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-8-28
"""
from pandas import Series,DataFrame
x1 = Series([1,2,3,4])
x2 = Series(data=[1,2,3,4],index=['a','b','c','d'])
#使用字典来创建
d = {'a':1,'b':2,'c':3,'d':4}
x3=Series(d)
print(f'x1打印的结果是:{x1}' )
print('='*20)
print(f'x2打印的结果是:{x2}')
print('='*20)
print(f'x3打印的结果是:{x3}')

结果如下:

image.png



2.2 DataFrame使用

・类似数据库表,包括了行索引和列索引,可以将DataFrame看成是由相同索引的Series组成的字典类型


我们在举个例子:


# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-8-28
"""
from pandas import DataFrame
data = {
        'Chinese':[66,88,93,11,66],
        'Math':[30,20,40,50,77],
        'English':[65,88,90,55,22]
        }
df1 = DataFrame(data)
df2 = DataFrame(
            data,
            index=['张三','李四','王五','赵刘','贾七'],
            columns=['Chinese','Math','English']
                )
print(f'df1打印的结果是:\n{df1}')
print('='*30)
print(f'df2打印的结果是:\n{df2}')

看一下效果

image.png


2.2.1 删除操作

・删除DataFrame的 行与列

实例演示


#删除行
df2 = df2.drop(columns=['English'])
#删列
df2 = df2.drop(index=['张三'])

运行结果

image.png


2.2.2 去重操作

・去掉重复的值


#去掉重复的值
df1 = df1.drop_duplicates()

2.2.3 更改数据格式操作

・更改数据格式


#更改数据格式
df2['Chinese'].astype('str')
df2['Chinese'].astype(np.int64)

2.2.4 去掉数据间的空格操作

・去掉数据间的空格


#删除数据左右两边的空格
df2['Chinese'] = df2['Chinese'].map(str.split)

2.2.5 大小写转换操作

・全部大写


#全部大写转换
df2.columns = df2.columns.str.upper()

・全部小写


#全部小写转换
df2.columns = df2.columns.str.lower()

・首字母大写


#首字母大写
df2.columns = df2.columns.str.title()

2.2.6 数据清洗

・使用apply对数据进行清洗

apply是Pandas中自由度非常高的函数,使用频率非常高。

比如:

① 对Math列的数值进行大小写转换


#对Math列进行大小写转换
df2['Math'] = df2['Math'].apply(str.upper)

②定义函数,在apply中使用


#定义函数,在apply中使用
def par_df(par):
    return par*2
df1['Chinese'] = df1['Chinese'].apply(par_df)

2.3 Pandas中的统计函数

2.3.1 基本数据统计用法

・count() 统计个数,空值NaN不计算

・describe() 一次性输出多个统计指标,包括:count, mean, std, min, max等

・min()最小值

・max()最大值

・sum()总和

・median()中位数

・var()方差

・std()标准差

・argmin() 统计最小值的索引位置

・argmax()统计最大值的索引位置

・idxmin() 统计最小值的索引值

・idxmax() 统计最大值的索引值


2.3.2 函数链接用法

・inner内连接


#内连接
df3 = pd.merge(df1, df2, how='inner')

・outer外连接


#外连接
df3 = pd.merge(df1, df2, how='outer')

・right右连接


#内连接
df3 = pd.merge(df1, df2, how='right')

・left左连接


#内连接
df3 = pd.merge(df1, df2, how='left')

2.3.3 loc函数及iloc函数的用法

• loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行)

• iloc函数:通过行号来取行数据(如取第二行的数据)


老规矩,上代码

提取行的实例:


# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-8-28
"""
from pandas import DataFrame
data = {
        'Chinese':[66,88,93,11,66],
        'Math':[30,20,40,50,77],
        'English':[65,88,90,55,22]
        }
df2 = DataFrame(
            data,
            index=['张三','李四','王五','赵刘','贾七'],
            columns=['Chinese','Math','English']
                )
#提取index为'张三'的行
print(f"loc函数提取index为'张三'的行的内容:\n {df2.loc[u'张三']}")
print("="*30)
#提取第1行内容
print(f"iloc函数提取第1行的内容:\n {df2.iloc[1]}")

运行结果


image.png


提取列的实例:


# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-8-28
"""
from pandas import DataFrame
data = {
        'Chinese':[66,88,93,11,66],
        'Math':[30,20,40,50,77],
        'English':[65,88,90,55,22]
        }
df2 = DataFrame(
            data,
            index=['张三','李四','王五','赵刘','贾七'],
            columns=['Chinese','Math','English']
                )
#提取列为Englis的所有内容
#使用loc函数获取分数
print(f"loc函数提取列为Englis的所有内容:\n {df2.loc[:,['English']]}")
print("="*30)
#提取第2列的所有内容
#使用iloc函数获取分数
print(f"iloc函数提取第2列的所有内容:\n {df2.iloc[:,2]}")

运行结果


image.png

提取列和行的多条数据:


# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-8-28
"""
from pandas import DataFrame
data = {
        'Chinese':[66,88,93,11,66],
        'Math':[30,20,40,50,77],
        'English':[65,88,90,55,22]
        }
df2 = DataFrame(
            data,
            index=['zhangsan','lisi','wangwu','zhaoliu','jiaqi'],
            columns=['Chinese','Math','English']
                )
#使用loc函数获取分数
loc_soc = df2.loc[['zhangsan','zhaoliu'],['Chinese','English']]
print(f'zhangsan,zhaoliu的Chinese,English成绩分别是:\n{loc_sco}')
#使用iloc函数获取分数
iloc_sco = df2.iloc[[0,3],[0,2]]
print(f'zhangsan,zhaoliu的Chinese,English成绩分别是:\n{iloc_sco}')

运行结果

image.png


2.4 数据分组

・group by用法


import numpy as np
import pandas as pd
#读取数据csv文件,采用gbk编码格式
data = pd.read_csv('data_info.csv',encoding='gbk')
result = data.groupby('sex').age([np.sum,np.mean])
#打印结果
print(f'结果内容显示为:\n{result}')

2.5 数据排序

・排序函数sort_values()


#对A11列从大到小进行排序
df.sort_values('A11', ascending=False)

・索引还原reset_index()


'''
reset_index():可以还原索引,重新变为默认的整型索引
inplace = True:不创建新的对象,直接对原始对象进行修改
'''
df.reset_index(inplace=True)

注:

这里的 sort_values 方法类似于 SQL中的order by 用法。


2.6读写文件

・读取csv文件


#读取csv文件
pd.read_csv('file_name')

・写入csv文件


#写入csv文件,不保存index
pd.to_csv('file_name',index=False)

2.7 合并两个Dataframe

・使用merge通过index来合并Dataframe


#合并两个Dataframe
df2 = df.merge(df2,left_index=True,right_index=True,how='left')

3. Pandas实战代码及参考文献

Pandas实战代码:

《Pandas 5行代码实现对excel 读写操作》

《Python3,pandas自动处理exlce数据及yagmail邮件自动发送》

目录
相关文章
|
1月前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
47 2
|
1月前
|
存储 数据采集 数据可视化
Pandas数据应用:医疗数据分析
Pandas是Python中强大的数据操作和分析库,广泛应用于医疗数据分析。本文介绍了使用Pandas进行医疗数据分析的常见问题及解决方案,涵盖数据导入、预处理、清洗、转换、可视化等方面。通过解决文件路径错误、编码不匹配、缺失值处理、异常值识别、分类变量编码等问题,结合Matplotlib等工具实现数据可视化,并提供了解决常见报错的方法。掌握这些技巧可以提高医疗数据分析的效率和准确性。
81 22
|
2月前
|
存储 数据采集 数据可视化
Pandas数据应用:电子商务数据分析
本文介绍如何使用 Pandas 进行电子商务数据分析,涵盖数据加载、清洗、预处理、分析与可视化。通过 `read_csv` 等函数加载数据,利用 `info()` 和 `describe()` 探索数据结构和统计信息。针对常见问题如缺失值、重复记录、异常值等,提供解决方案,如 `dropna()`、`drop_duplicates()` 和正则表达式处理。结合 Matplotlib 等库实现数据可视化,探讨内存不足和性能瓶颈的应对方法,并总结常见报错及解决策略,帮助提升电商企业的数据分析能力。
154 73
|
2月前
|
数据采集 数据可视化 数据挖掘
Pandas数据应用:天气数据分析
本文介绍如何使用 Pandas 进行天气数据分析。Pandas 是一个强大的 Python 数据处理库,适合处理表格型数据。文章涵盖加载天气数据、处理缺失值、转换数据类型、时间序列分析(如滚动平均和重采样)等内容,并解决常见报错如 SettingWithCopyWarning、KeyError 和 TypeError。通过这些方法,帮助用户更好地进行气候趋势预测和决策。
137 71
|
2月前
|
数据采集 数据可视化 索引
Pandas数据应用:股票数据分析
本文介绍了如何使用Pandas库进行股票数据分析。首先,通过pip安装并导入Pandas库。接着,从本地CSV文件读取股票数据,并解决常见的解析错误。然后,利用head()、info()等函数查看数据基本信息,进行数据清洗,处理缺失值和重复数据。再者,结合Matplotlib和Seaborn进行数据可视化,绘制收盘价折线图。最后,进行时间序列分析,设置日期索引、重采样和计算移动平均线。通过这些步骤,帮助读者掌握Pandas在股票数据分析中的应用。
93 5
|
2月前
|
存储 大数据 数据处理
Pandas入门:安装与基本操作
Pandas 是一个强大的 Python 数据处理库,提供高效的数据结构和分析工具。本文从安装开始,介绍 Pandas 的基本操作,包括 `Series` 和 `DataFrame` 的创建、查看、选择、过滤、添加和删除数据等。同时,指出了一些常见的问题和易错点,帮助初学者快速上手。
119 2
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
3月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
95 3
|
3月前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
3月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南