python——pandas总结

Introduction

先吐槽一下,CSDN博客编写模块太难用,很多bug!!!!!!!

做了几个kaggle比赛之后,突然发现数据处理能力太差,包括缺省值处理,各种索引方式以及各种数据类型,彼此之间用法很容易搞混,因此有必要对pandas做做总结。参考了以下内容:


1、十分钟搞定pandas


总结内容很多,这里只贴出部分内容,具体网址是

method

Pandas基本功能简介

l 具备按轴自动显式数据对齐功能的数据结构

集成时间序列功能

l 既能处理时间序列数据也能处理非时间序列数据的数据结构

数学运算和约简(比如对某个轴求和)可以根据不同的元数据(轴编号)执行

l 灵活处理缺失数据

l 合并及其他出现在常见数据库(例如基于SQL的)中的关系型运算

数据结构

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

与list、numpy(array)不同之处是有索引,不需要map->key便于查找排序等,对索引进行操作,可以替换索引。

DataFrame:

l DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等),类似于excel

l DataFrame既有行索引(index)也有列索引(columns),它可以被看做Series组成的字典(共用同一个索引)

访问行索引方式:加.ix . 例如:pd.ix[‘three’]

索引对象

l pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。

l Index对象是不可修改的(immutable),因此用户不能对其进行修改。不可修改性非常重要,因为这样才能使Index对象在多个数据结构之间安全共享。


from pandas import DataFrame, Series, Index
指定Series的index
obj2 = Series([5, 4, -3, 2, 1], index = ['a', 'b', 'c', 'd', 'e'])
print (obj2)
print (obj2.values)
print (obj2.index)
print (obj2['b'])
obj2['d'] = 6
print (obj2[['c', 'a', 'd']])
print (obj2[obj2 > 0])  # 找出大于0的元素
判断索引是否存在
print ('b' in obj2 )
print ( 'f' in obj2)

使用字典生成Series
sdata = {'Ohio':45000, 'Texas':71000, 'Oregon':16000, 'Utah':5000}
obj3 = Series(sdata)
print (obj3)

使用字典生成Series,并额外指定index,不匹配部分为NaN
states=['California', 'Ohio', 'Oregon', 'Texas']
obj4 = Series(sdata, index = states)
print (obj4)

Series相加,相同索引部分相加
print (obj3 + obj4)

指定Series及其索引的名字
obj4.name = 'population'
obj4.index.name = 'state'
print (obj4)

替换index
obj1.index = ['Bob', 'Bob', 'Steve', 'Jeff', 'Ryan']
print (obj1)

用字典生成DataFrame,key为列的名字,字典没有顺序
data = {'state':['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
        'year':[2000, 2001, 2002, 2001, 2002],
        'pop':[1.5, 1.7, 3.6, 2.4, 2.9]}
print (DataFrame(data))

指定列顺序,索引
frame2 = DataFrame(data, columns = ['year', 'pop', 'state', 'debt'],
                   index = ['one', 'two', 'three', 'four', 'five'])
print (frame2)
列索引方式
print (frame2.state)
print (frame2['state'])
行索引方式
print (frame2.ix['one'])

修改一列
frame2.debt = np.arange(5)
print (frame2)
修改一行
frame2.ix ['one'] = np.arange(4)
print (frame2)

用Series指定要修改的索引及其对应的值
val = Series([-1.2, -1.5, -1.7], index = ['two', 'four', 'five'])
frame2['debt'] = val
print (frame2)

赋值给新列
frame2['eastern'] = (frame2.state =='Ohio')
#frame2.state =='Ohio'是逻辑判断,是为True,否则False
print (frame2)

DataFrame转置
pop = {'Nevada':{2001:2.4, 2002:2.9},
        'Ohio':{2000:1.5, 2001:1.7, 2002:3.6}}# 字典嵌套
frame3 = DataFrame(pop)
print (frame3)
print (frame3.T)

指定索引顺序,以及使用切片初始化数据
print (DataFrame(pop, index = [2001, 2002, 2003]))
pdata = {'Ohio':frame3['Nevada'][:-1], 'Nevada':frame3['Ohio'][1:]}
#先指定列
print (DataFrame(pdata))

指定索引和列的名称
frame3.index.name = 'year'
frame3.columns.name = 'state'
print (frame3)
print (frame3.values)
print (frame2.values)

获取index
obj = Series(range(3), index = ['a', 'b', 'c'])
index = obj.index
print (index[1:])

try:
  index[1] = 'e'
except:
  print (sys.exc_info()[0])# 否则进行异常处理
print ()

使用Index对象
index = Index(np.arange(3))
obj2 = Series([1.5, -2.5, 0], index = index)
print (obj2)
print (obj2.index is index)
print ()

判断列和索引是否存在
pop = {'Nevada': {2001: 2.4, 2002: 2.9},
       'Ohio': {2000:1.5, 2001: 1.7,2002: 3.6}}
frame3 = DataFrame(pop)
print ('Ohio' in frame3.columns)
print ('2003' in frame3.index)


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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、付费专栏及课程。

余额充值