Python数据分析——pandas

1.pandas简介

        pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。

        pandas 是第三方库,需要单独安装才能使用。

一般情况下,我们会像下面这样引入 pandas 模块:

import pandas as pd

        将 pandas 简写成 pd 几乎成了一种不成文的规定。因此,只要你看到 pd 就应该联想到这是 pandas。

2.pandas主要数据结构

        pandas的两个主要数据结构是Series(一维数据)DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。

2.1Series

        Series 是一种类似于 Numpy 中一维数组的对象,它由一组任意类型的数据以及一组与之相关的数据标签(即索引)组成。

2.1.1直接创建数组

import pandas as pd

print(pd.Series([2,4,6,8]))
# 输出:
# 0    2
# 1    4
# 2    6
# 3    8
# dtype: int64

        左边的是数据的标签,默认是从0开始依次递增;右边是对应的数据,最后一行表示数据的类型。

2.1.2使用index参数自定义数据标签

import pandas as pd

print(pd.Series([2,4,6,8],index=['a','b','c','d']))
# 输出:
# a    2
# b    4
# c    6
# d    8
# dtype: int64

 2.1.3使用字典创建数组

        pandas会字典将字典的键作为数据标签,字典的值作为相应的数据。

import pandas as pd

print(pd.Series({'a': 2, 'b': 4, 'c': 6, 'd': 8}))
# 输出:
# a    2
# b    4
# c    6
# d    8
# dtype: int64

2.1.4获取数据

        访问Series的数据和Python中访问列表和字典元素的方式类似,使用中括号加数据标签的方式来获取其中的数据。

import pandas as pd

s1 = pd.Series([2, 4, 6, 8])
s2 = pd.Series({'a': 2, 'b': 4, 'c': 6, 'd': 8})

print(s1[0])
# 输出:2
print(s2['b'])
# 输出:4

2.1.5数据对齐功能介绍

        pandas自动将相同数据标签的数据进行计算,这就是数据对齐。如果不用Series,用列表和字典需要使用循环来进行计算。

import pandas as pd

s1 = pd.Series({'辣条': 14, '面包': 7, '可乐': 8, '烤肠': 10})
s2 = pd.Series({'辣条': 20, '面包': 3, '可乐': 13, '烤肠': 6})
print(s1 + s2)
# 输出:
# 辣条    34
# 面包    10
# 可乐    21
# 烤肠    16
# dtype: int64

        如果两个一维数组的数据标签内容不相同,则会有以下的输出结果。除了两个一维数组中相同的数据标签进行了相加,其他的只有一个的为NaN(NaN,是Not a Number,不是一个数字的缩写),因为其中一个Series中没有对应数据标签的数据,无法进行计算,所以返回NaN。

import pandas as pd

s1 = pd.Series({'辣条': 14, '面包': 7, '可乐': 8, '烤肠': 10})
s2 = pd.Series({'辣条': 20, '面包': 3, '雪碧': 13, '泡面': 6})
print(s1 + s2)
# 输出:
# 可乐     NaN
# 泡面     NaN
# 烤肠     NaN
# 辣条    34.0
# 雪碧     NaN
# 面包    10.0
# dtype: float64

         对于以上情况,我们可以让没有的数据默认为0,然后再进行计算,只需调用Series的add()方法,并设置其中的fill_value参数即可。

import pandas as pd

s1 = pd.Series({'辣条': 14, '面包': 7, '可乐': 8, '烤肠': 10})
s2 = pd.Series({'辣条': 20, '面包': 3, '雪碧': 13, '泡面': 6})
print(s1.add(s2,fill_value=0))
# 输出:
# 可乐     8.0
# 泡面     6.0
# 烤肠    10.0
# 辣条    34.0
# 雪碧    13.0
# 面包    10.0
# dtype: float64

         数学中的四则运算再pandas中都有对应的方法,并且用法相似。

pandas中的四则运算
方法示例
加法add()s1.add(s2, fill_value=0)
减法sub()s1.sub(s2, fill_value=0)
乘法mul()s1.mul(s2, fill_value=0)
除法div()s1.div(s2,fill_value=0)

2.2DataFrame

        Series是一维数据,而DataFrame是二维数据。可以把DataFrame想象成一个表格,表格有行和列两个维度,所以是二维数据。并且,表格中的每一行或者每一列都是一个Series,这些Series组成了DataFrame。

2.2.1直接创建二维数据

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

df = pd.DataFrame({'辣条': [14, 20], '面包': [7, 3], '可乐': [8, 13], '烤肠': [10, 6]})
print(df)
# 输出:
#    辣条  面包  可乐  烤肠
# 0    14     7     8    10
# 1    20     3    13     6

        因为表格中有中文, 中文占用的字符和英文、数字占用的字符不一样,因此需要调用pd.set_option()使表格对齐显示。

2.2.2使用字典创建二维数据

        使用字典构建DataFrame,字典每个键都是列表,并且长度必须相等。得到的表格,字典的键会作为表格的列名,最左边的是索索引(Index),默认是从0依次开始递增,也可以在构建DataFrame的时候传入index参数来定义索引。

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

data = {
  '辣条': [14, 20],
  '面包': [7, 3],
  '可乐': [8, 13],
  '烤肠': [10, 6]
}
df = pd.DataFrame(data, index=['2020-01-01', '2020-01-02'])
print(df)
# 输出:
#             辣条  面包  可乐  烤肠
# 2020-01-01  14   7   8  10
# 2020-01-02  20   3  13   6

2.2.3列的增删改查

import pandas as pd
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

df = pd.DataFrame({'辣条': [14, 20], '面包': [7, 3], '可乐': [8, 13], '烤肠': [10, 6]})

#增
df['香蕉']=[1,2]
print(df)

#删
df.drop('面包', axis=1, inplace=True)#axis=0表示删除对应的行,axis=1表示删除对应的列;
                                    #inplace=True表示对原数据进行修改,inplace=False表示只返回修改的数据,对原表格无影响
print(df)
# 或者 print(df.drop('面包', axis=1))

#改
df['可乐']=[11,22]
print(df)

#查
print(df['可乐']) #查多个数据时只要把多个列名放入列表中即可,print(df[['可乐', '辣条']])

2.3表格文件相关操作

import pandas as pd

df = pd.read_csv('xxx.csv')#读入csv文件
#df = pd.read_csv('xxx.xlsx',sheet_name='lala')#读入excel文件,默认为第一张工作表,可以指定
print(type(df))
# 输出:<class 'pandas.core.frame.DataFrame'>

df.sort_values('xx',ascending=Flase,inplace=True)#根据xx进行降序排列,默认为升序,
                                                  #将ascending设置为False则为降序

df.to_csv('xxx.csv')#输出csv文件,存在相同名称则覆盖,没有则创建
#df.to_excel('xxx.xlsx') #输出excel文件,存在相同名称则覆盖,没有则创建

        使用head()方法可以查看前5条数据,而且,在括号中填入数字可控制查看的条数。tail()方法与之类似,默认查看末尾5条数据。

print(df.head()) #查看前5条数据
print(df.head(1))#查看第1条数据

print(df.tail()) #查看最后5条数据
print(df.tall(2))#查看最后2条数据

        使用info()方法查看整个表格的大致信息。包括行数、列数、列名、数据类型等。describe()方法快速查看数据的统计摘要,包括数据数量、平均数、标准差、最小值、25%50%75%位置的值和最大值。

print(df.info())
print(df.describe())

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Pandas是一个Python库,用于数据处理和分析。在数据分析中,预处理是非常重要的一步,因为它可以帮助我们清洗和转换数据,使其更适合进行分析。Pandas提供了一些强大的预处理功能,包括数据清洗、数据转换、数据重塑和数据合并等。在使用Pandas进行数据分析时,预处理是必不可少的一步。 ### 回答2: 在数据分析中,数据的预处理是一个必要的过程。它的主要目的是清洗数据,准备数据,以便后续分析。在Python中,pandas是一种广泛使用的数据处理库。pandas可以通过其高效的数据结构和操作方法来清洗和处理数据。在本文中,将介绍pandas预处理的一些常见技术。 一、读取数据 在pandas中,使用read_csv()函数读取CSV格式的数据文件,read_excel()函数读取Excel格式的数据文件。它们都有很多选项,可以根据具体文件的格式进行设置。 二、查看数据 在pandas中,使用以下函数来查看数据: 1. head() - 显示数据框的前几行; 2. tail() - 显示数据框的后几行; 3. columns - 显示数据框的列名; 4. shape - 显示数据框的行列数; 5. info() - 显示数据框的基本信息,包括每列的名称、非空值数量和数据类型。 三、数据清洗 在数据清洗中,有以下一些常见的技术: 1. 删除重复行:使用drop_duplicates()函数; 2. 替换空值:使用fillna()函数; 3. 删除空值:使用dropna()函数; 4. 更改数据类型:使用astype()函数。 四、数据准备 在数据准备中,有以下一些常见的技术: 1. 数据合并:使用merge()函数; 2. 数据筛选:使用loc()函数或者iloc()函数; 3. 数据分组:使用groupby()函数; 4. 数据排序:使用sort_values()函数。 五、数据分析数据分析中,有以下一些常见的技术: 1. 数据聚合:使用agg()函数; 2. 统计描述:使用describe()函数; 3. 数据可视化:使用matplotlib或者seaborn库。 综上所述,pandas预处理是数据分析中必不可少的一步。通过使用pandas提供的函数和方法,可以方便地清理和处理数据,使其更容易被分析。 ### 回答3: PandasPython中最强大的数据处理库之一,它提供了DataFrame和Series这两种数据结构,可以快速便捷地处理数据。在数据分析过程中,我们往往需要先对数据进行预处理,以便后续的分析。Pandas提供了一系列的方法和函数,可以帮助我们进行数据的预处理。 首先,在进行数据分析之前,我们需要了解自己所面对的数据类型和数据结构。Pandas中的DataFrame结构就是类似于表格的结构,每一行代表一个样本,每一列代表一个属性。Series则是一维的数组结构。通过pandas.read_csv(),我们可以读取CSV格式的数据,并转化为DataFrame结构。 接下来,我们要对数据进行一些基本的处理,例如数据清洗、数据去重、缺失值处理、异常值处理等。在数据清洗过程中,我们往往需要对数据进行一些特殊的处理,例如字符串的分割、合并、替换等操作,Pandas提供了一系列能够对文本进行操作的函数。在数据去重方面,我们可以使用drop_duplicates()函数,它可以去除DataFrame中的重复记录。在处理缺失值时,Pandas提供了一系列的函数,如fillna()函数、dropna()函数,可以方便地将NaN值变为其他有意义的值,或者删除缺失值的行或列。在异常值处理方面,我们可以使用isoutlier()函数来找到数据中的异常值,并进行处理。 在数据预处理完成后,我们可以对数据进行一些统计分析,例如计算小计、计算总计、分位数、极差、方差、标准差等统计指标。我们可以使用describe()函数来获得数据的统计描述,还可以使用groupby()函数来对数据分组,使用agg()函数对每组进行计算统计指标。此外,我们还可以对数据进行排序、丢弃、合并等操作。 总之,Pandas是一个非常强大的Python库,可以轻松处理数据预处理和数据处理方面的任务。Pandas作为数据分析和数据处理的基础库,使用熟练后可以在数据分析中发挥更大的作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

花落指尖❀

您的认可是小浪宝宝最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值