数据分析处理库——Pandas

简介

Pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。下面我们将要介绍Pandas的具体用法,本篇文章用到的文件分别为food_info.csv、fandango_score_comparison.csv以及titanic_train.csv。

使用

    1.读取文件以及查看数据属性类型

import pandas as pd
#注意目录读写格式
food_info=pd.read_csv('J:/BaiduNetdiskDownload/food_info.csv')
#显示food_info的数据类型
print(type(food_info))
#显示food_info属性的数据类型
print(food_info.dtypes)
#print(help(pd.read_csv))

    上面代码需要注意的及时读取数据文件时的目录格式,运行结果如下。

 

    2.按要求提取数据

#默认读取前五行,括号里可以加参数指定读取几行
#food_info.head()
#默认读取最后五行
#food_info.tail()
#类似于矩阵读取行列数
#print(food_info.shape)
#读取列的属性
print(food_info.columns)

    上面代码注释标注的很清楚,运行结果读者可以自行验证。

    3.Pandas的索引操作

#pandas的索引操作,下面打印出的是第一行数据
print(food_info.loc[0])
#打印3到6行的数据
#food_info.loc[3:6]
#打印2,5,7行的数据,两个中括号
food_info.loc[[2,3,7]]

    运行结果读者自行验证。

    4.按照属性名输出值

num=food_info["NDB_No"]
#按照属性名输出某一列属性的全部值
print(num)

     5.按照局部属性名输出值

#输出文件属性中以g为单位结尾的,输出五行
col_name=food_info.columns.tolist()
print(col_name)
gram_col=[]
for c in col_name:
    if c.endswith ("(g)"):
        gram_col.append(c)
grams=food_info[gram_col]
print(grams.head(5))

    运行结果显示如下。

    6. 向数据文件相似的矩阵添加一属性

water_energy=food_info["Water_(g)"]*food_info["Energ_Kcal"]
print(water_energy)
print(food_info.shape)
#矩阵shape改变,实则文件中的属性并未改变
food_info["water_energy"]=water_energy
print(food_info.shape)

    结果显示如下:

      7. max()函数,求某一属性列的最大值

#max函数
max_calories=food_info["Energ_Kcal"].max()
print(max_calories)
div_max=food_info["Energ_Kcal"]/max_calories
food_info["cal_div_max"]=div_max
print(food_info.shape)
food_info.head(5)

        结果读者可以自行验证。

    8.根据属性名输出所有属性值

import pandas as pd
import numpy as np
#读取文件
titanic_survival=pd.read_csv("J:/BaiduNetdiskDownload/titanic_train.csv")
age=titanic_survival["Age"]
#输出属性名为“Age”的值
print(age[0:10])
age_is_null=pd.isnull(age)
#判断"Age"的值是否为空并进行输出
print(age_is_null)
age_null_true=age[age_is_null]
#输出“Age”为空的值
print(age_null_true)
#“Age”为空的值个个数
print(len(age_null_true))

    运行结果可以自行验证。

    9.求某一属性的平均值

#求某一属性的平均值,缺失值自动过滤
mean_age=titanic_survival["Age"].mean()
print(mean_age)

     10.根据不同的索引求平均值

#查看123等舱乘客的平均获救率
passager_survival=titanic_survival.pivot_table(index="Pclass",values="Survived",aggfunc=np.mean)
print(passager_survival)

    运行结果如下:

 

    11.dropna的使用

#丢弃有缺失值的列(一般不会这么做,这样会删掉一个特征)
dropna_col=titanic_survival.dropna(axis=1)
#print(dropna_col)
#丢弃‘Age’和‘Sex’这两列中有缺失值的行 
dropna_raw=titanic_survival.dropna(axis=0,subset=["Age","Sex"])
#print(dropna_raw)

    12.自定义函数

#输出第一百行的记录
def hundred_row(column):
    hundred_item=column.loc[99]
    return hundred_item
hundred_rec=titanic_survival.apply(hundred_row)
print(hundred_rec)
#输出文件中每个属性缺失值的个数
def not_null_count(column):
    column_null=pd.isnull(column)
    null=column[column_null]
    return len(null)
column_null_count=titanic_survival.apply(not_null_count)
print(column_null_count)

    13.Series

         从读取的数据已矩阵的形式表示出来,一般来说,可以把矩阵的一行记录或一列理解为一个Series。

from pandas import Series
fandango=pd.read_csv("J:/BaiduNetdiskDownload/fandango_score_comparison.csv")
series_film=fandango["FILM"]
#显示series_film的数据类型
print(type(series_film))
#print(series_film[0:5])
series_rt=fandango["RottenTomatoes"]
#print(series_rt[0:5])
film_names=series_film.values
print(type(film_names))
#print(film_names)
rt_scores=series_rt.values
#print(rt_scores)
#以电影名字作为索引,被索引的是某一网站的评分
series_custom=Series(rt_scores,index=film_names)
series_custom[["Irrational Man (2015)","Leviathan (2014)"]]

    显示结果如下:

    14. 排序

#按字典序给电影排序
original_index=series_custom.index.tolist()
sorted_index=sorted(original_index)
sorted_by_index=series_custom.reindex(sorted_index)
print(sorted_by_index)

   结果读者自行验证即可。 

    15.求每一列属性值的标准差

types=fandango_films.dtypes
#求得所有的float列
float_columns=types[types.values=="float64"].index
float_df=fandango_films[float_columns]
print(float_df)
print("____________________________")
#对每一列的值求标准差
deviations=float_df.apply(lambda x: np.std(x))
print(deviations)

    结束

Pandas库就先写到这儿吧,有空再补充。

### 回答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作为数据分析和数据处理的基础,使用熟练后可以在数据分析中发挥更大的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值