Pandas学习记录

本文详细阐述了如何在Python中使用Pandas创建DataFrame和Series,导入数据,以及运用iloc和loc进行精确的索引选取。
摘要由CSDN通过智能技术生成


为了使用 Pandas,我们首先需要导入库

import pandas as pd

一、创建、读取

1.创建

主要有两种类型:DataFrameSeries.
DataFrame:一个表格,包括每条记录的各个属性值。每一个记录对应着一行一列

pd.DataFrame({'Yes':[50, 21], 'No':[131, 2]})

或者

pd.DataFrame([[50, 131], [21, 2]], columns=['Yes', 'No'])

DataFrame的内容不局限于整数形数据,也可以是字符串

pd.DataFrame({'Bob': ['I liked it.', 'It was awful.'], 'Sue': ['Pretty good.', 'Bland.']})

我们使用 pd.DataFrame() 创建 DataFrame类型的数据,其中行标签的列表称为 Index,我们可以设置索引参数。

pd.DataFrame({'Bob': ['I liked it.', 'It was awful.'], 
              'Sue': ['Pretty good.', 'Bland.']},
             index=['Product A', 'Product B'])

Series:是数值序列,如果说DataFrame是表格,那Series就是一个列表,它的创建方式与Python中没有什么不同

pd.Series([1, 2, 3, 4, 5])

Series 实际上是 DataFrame的一个列。所以我们可以采用之前的方式使用索引从行标签中获取值,但是Series没有列名,只有一个总的名字。

pd.Series([30, 35, 40], index=['2015 Scales', '2016 Scales', '2017 Scales'], name='Products A')

2.读取数据

最基本的是读取 CSV 表格,通过逗号划分表格的值:
Product A,Product B,Product C,
30,21,9,
35,34,1,
41,11,11

wines_reviews = pd.read_csv("文件地址")

我们可以使用 shape属性查看DataFrame的大小

wines_reviews.shape

使用 **head()**查看前五行信息

wines_reviews.head()

二、索引,选取

根据 DataFrame 的属性选取

reviews.country

第二种方法:

reviews['country']

这两种方法都能从 DataFrame 中选择一个特定的Series,但是 [ ] 可以处理特殊的列名(如:country providence列,但是reviews.country providence会报错)
我们可以类似字典取值的方法获取 DataFrame 的值:

reviews['country'][0]

1.Pandas中的索引

常用的两种方法 lociloc,顺序先行后列,与原始python中先列后行有所不同。

基于索引 iloc

获取第一行信息:

reviews.iloc[0]

获取第一列信息:

reviews.iloc[:, 0]

获取前三行的第一列信息:

reviews.iloc[:3, 0]
reviews.iloc[[0, 1, 2], 0]

获取后五行信息:

reviews.iloc[-5:]

基于标签 loc

获取 country 列第一行信息:

reviews.loc[0, 'country']

获取多列信息:

reviews.loc[:, ['taster_name', 'taster_twitter_handle', 'points']]

iloc 与 loc 的区别

两者在索引数值型表格时略有差别,iloc[0:10] 选取的是 0, 1, …, 9,而 loc[0:10] 选取的是 0, 1, …, 10

2.更改索引 set_index()

reviews.set_index('title')

此时第一列不再是 默认的数字行号,而是 title 中的内容

3.条件选取

涉及条件运算符参与索引
国家是否为 Italy ,结果返回 bool 数据类型

reviews.country == 'Italy'

通过条件运算符获取位置,然后索引数据

reviews.loc[reviews.country == 'Italy']
reviews.loc[(reviews.country == 'Italy') & (reviews.points >= 90)] # 与
reviews.loc[(reviews.country == 'Italy') | (reviews.points >= 90)] # 或
reviews.loc[reviews.country.isin(['Italy', 'France'])]      # 存在
reviews.loc[reviews.price.notnull()]         # 非空
  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天天同学

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值