自学Python——Pandas

0.简介

“Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。”——百度百科

1.初识Pandas

1.1引包

import pandas
import numpy

1.2读取csv文件

data=pandas.read_csv('1.csv',encoding='gbk')
print(data)
print(data.dtypes)

1.3基本数据结构

# 直接取出来的数据放入的是DataFrame
print(type(data))

# DataFrame的某几列--->成为Series
print(type(data["id"]))

# DataFrame的某几行--->仍然是DataFrame
print(type(data.loc[0:3]))

# DataFrame的某几列的某几行--->成为Series
print(type(data["id"].loc[0:3]))

print(data.columns)

print(data.shape)

2.可视化显示部分数据

data.head() # 默认前五行

data.head(3)# 也可以指定默认前几行

data.tail() #默认显示后五行

# 指定显示某一行
print(data.loc[1])
data.loc[1]

# 指定某几行
data.loc[1:3]
data.loc[[1,3,5]]

# 取出  指定行  指定列  的值
data.loc[1,"性别"]

# 取出指定的列
print(data["id"])
print(data[["id","性别"]])


# 获取满足条件的某些数据
print(data[data["年龄"]>30])


3.操作字段名


list_title=data.columns.tolist()
print(list_title)
print(type(list_title))

# 对存储所有字段的list进行操作后,可获取指定的列
print(data[list_title])

4.基本操作

4.1四则运算

与numpy一样,都是对整体进行操作

4.2函数

# 某一列的最大值,最小值,排序
print(data["年龄"].max())

print(data["年龄"].min())


# 求均值(会自动过滤掉  那些有缺失值的数据,进而求平均值)
print(data["年龄"].mean())


data.sort_values("年龄",inplace=True)
#第一个参数指排序的字段(默认升序),第二个参数是否替换data本身的数据(新生成一个DataFrame,并让data指向ta)
print(data)


# 第三个参数——升降序
data.sort_values("年龄",inplace=True,ascending=False)
print(data)


# 排序后,重做索引值
print(data.reset_index(drop=True))

5.截取部分数据

#取出某一列
data_tian=data["*天门冬氨酸氨基转换酶"]
print(data_tian)

#判断某一列中那些为空
data_tian_isnull=pandas.isnull( data["*天门冬氨酸氨基转换酶"])
#print(data_tian_isnull)

#将为空的数据取出
data_tian__null=data_tian[data_tian_isnull]
#print(data_tian__null)

# 判断有多少是为空的数据
#print(len(data_tian__null))

# 取出非空的数据
data_is_not_null=data_tian[data_tian_isnull==False]

# 判断非空的数据的平均值
print(sum(data_is_not_null)/len(data_is_not_null))


# pandas在求平均值时会自动过滤到那些没有值的数据
print(data_tian.mean())

6.求出表中某些字段(values)与指定字段(index)之间在某方面(aggfunc)的对应关系

print(data.pivot_table(index="性别",values="*天门冬氨酸氨基转换酶",aggfunc=numpy.mean))

print(data.pivot_table(index="性别",values="年龄",aggfunc=numpy.mean))

7.处理“空数据”


#取出某一列
data_tian=data["*天门冬氨酸氨基转换酶"]
print(data_tian)

# 可以根据需求将某些值drop掉 axis=0 表示去掉有空数据的行
print(data_tian.dropna(axis=0))

# 可以根据需求,去掉在某些列(subset=)上为空的数据的行
print(data.dropna(axis=0,subset=["*天门冬氨酸氨基转换酶"]))

# 可以根据需求去掉某些存在 空数据的  某些列
print(data.dropna(axis=1))

8.apply函数

8.1定义一个函数,该函数只有一个参数 参数的类型为: 一个集合(DataFrame)

def get_first_Column(column):
    colu_1=column.loc[0]
    return colu_1

8.2可以直接调用集合(DataFrame)本身的apply函数,来调用自定义函数

data_first=data.apply(get_first_Column)
print(data_first)

8.3 例子一枚

统一集合各个字段为空数据的个数

def isnull_count(column):
    is_null=pandas.isnull(column)
    data_is_null=column[is_null]
    return len(data_is_null)


data_is_null=data.apply(isnull_count)
print(data_is_null)

9.Series

9.1介绍

DataFrame 的子结构 series
DataFrame 是series的集合 ,series是数据的集合
series是DataFrame的某一列或某几列。相当于是numpy中的ndarray


from pandas import Series

School_Data=pandas.read_csv('yxxx.csv',encoding='gbk')
print(type(School_Data))

School_Data_code=School_Data["院校代码"]
School_Data_name=School_Data["院校名称"]

# print(School_Data_code)
# print(School_Data_name)
print(type(School_Data_code))

9.2手动的构造一个Series

步骤:
①引包from pandas import Series,
②获取两个ndarray(其中一个当索引,也可以没有索引使用默认的)

School_Data_code_values=School_Data_code.values
School_Data_name_values=School_Data_name.values

print(type(School_Data_code_values))


school_infor=Series(School_Data_name_values,index=School_Data_code_values)

#print(school_infor)

9.3获取指定的数据

在指明了索引的情况下可以采用指定的索引来定位具体的数据,也可以根据默认的索引获取指定的数据

# 采用的是系统指定的索引
print(school_infor['10186'])
print(school_infor[['10186','10001']])

# 使用的是默认的索引
print(school_infor[0:3])

9.4重构 Series的索引

可以对Series的索引进行排序,然后重新定义Series的索引

#1.获取旧Series的索引
school_index=school_infor.index.tolist()
print(type(school_index))

# 2.对索引进行排序
school_index_sort=sorted(school_index)

# 3.重新设置Series的索引
school_infor_sort=school_infor.reindex(school_index_sort)

# print(school_infor_sort)

以上的步骤可以采用Series中的函数来处理

print(school_infor.sort_index())

当然也可以针对Series的值进行排序

print(school_infor.sort_values())

Series可以转换成numpy中的ndarray来处理

print(help(numpy.add))

### 回答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、付费专栏及课程。

余额充值