pandas基本知识

我们在用python进行数据分析时,pandas包是一个非常好的辅助工具,熟练的利用pandas可以让我们在做EDA时有更高的效率,因此了解pandas的基本用法是很必要的。

pandas的2个基本结构Series和DataFrame

我们可以这么理解Series,它就是一组数据(必须是同一类型的numpy数据)加上用于索引的index,例如:

import pandas as pd
values = pd.Series(data=[1,2,3,4,5], name='Values', dtype='int')
values

而dataframe可以看做是Series的字典,也就是其为不同的key对应着不同的Series的dict:

names = pd.Series( data = ['Allen','Bob','Chris','Dave','Ed','Frank','Gus'])
gpas = pd.Series( data = [4.0, 3.0, 3.4, 2.8, 2.5, 3.8, 3.0])
years = pd.Series( data = ['So', 'Fr', 'Fr', 'Jr', 'Sr', 'Sr', 'Fr'])
series_dict = { 'Name':  names, 'GPA': gpas, 'Year' : years }  # dict of Series, keys are the series names
students = pd.DataFrame( series_dict )
students

我们来用dict的方法来使用dataframe:

students['GPA']

可以看到,这就是一个Series。

DataFrame列和行操作

列选取

上一小节看到,如果单独选取dataframe的某一列,可以用students['GPA']这样的形式,但返回的是一个Series。但我们现在想选取多个列,且返回的仍然是dataframe结构。这时只要字段外部再加一个中括号即可,这里不说明原因,pandas就是这么规定的!例:

students[['GPA', 'Name']]

可以看到,这里得出的结果仍然是datafram结构。

行选取

我们可以使用逻辑语句来索引dataframe的行,例如我们需要选取gpa大于3的学生:

students[students['GPA'] > 3]

当然,我们可以用切片的方式选取特定的行,但要借助iloc函数(切片是依据index来的,如果index不是整数的话我们使用loc函数来取代iloc函数):

students.iloc[0:2,:]

 

遍历DataFrame

我们可以试着直接遍历一个dataframe:

for student in students:
    print (student)

我们发现打印出来的是key的名字,这是因为dataframe本身就是Series的字典结构,而在python语言里打印dict时输出就是其key列表。

我们可以使用行索引循环的方来遍历:

插入行和插入列

插入列可以使用inster函数:

# 参数为位置,名字,数据(可以是Series,array-like格式的数据)
students.insert(4,'test',[1,2,3,4,5,6,7])
students

插入行可以使用append函数,但要是使用dict类的数据,dict,DataFrame都可以:

students.append({'GPA':1,'Name':'2','Year':'Fr','Deans List':'No','test':8}, ignore_index=True)

修改某个单元的值

可以使用loc来定位单元并直接赋值,如:

students.loc[0, 'GPA'] = 70

意为在第0行,'GPA'列的单元赋值70

参考文献:

[1] Data Analysis with Pandas

[2] pandas官方文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值