100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 数据分析_python进行数据筛选1_行筛选

数据分析_python进行数据筛选1_行筛选

时间:2022-12-30 10:00:43

相关推荐

数据分析_python进行数据筛选1_行筛选

以titanic的训练数据为例进行展示,为了简化取前十行为例

首先导入模块,导入数据

import pandas as pd import numpy as npdf = pd.read_csv(r"C:\Users\admin\Desktop\train.csv")df = df.head(10)df.index=['a','b','c','d','e','f','g','h','i','g']

筛选单行

1.利用df[行索引:行索引]筛选出单行,这里的行索引可以是行索引的名称如df['a':'a'],也可以是行的行数df[0:1]

df['a':'a']df[0:1]

2.loc[行索引,列索引],索引为普通索引,传入行索引名称和列索引名称,筛选行时,列索引可以写成":"或直接省略不写

df.loc['a',:]df.loc[['a'],:]df.loc['a']df.loc[['a']]

3.iloc[行索引,列索引],索引为位置索引,传入行数和列数,筛选行时,列索引可以写成":"或直接省略不写

df.iloc[1,:]df.iloc[[1],:]df.iloc[1]df.iloc[[1]]

筛选多行

1.利用df[行索引m : 行索引n]筛选多行,这里的行索引可以是行索引的名称如df['a':'c'],也可以是行的行数df[0:4],不过只能筛选连续行

df[:3]df['a':'c']

2.loc[行索引,列索引],索引为普通索引,传入行索引名称和列索引名称,筛选行时,列索引可以写成":"或直接省略不写,如果筛选行不连续需要写成列表形式,如果行连续可以写成切片形式

df.loc[['a','c'],:]#也可以直接省略":"df.loc['a':'c',:]#也可以直接省略":"

3.iloc[行索引,列索引],索引为位置索引,传入行数和列数,筛选行时,列索引可以写成":"或直接省略不写,如果筛选行不连续需要写成列表形式,如果行连续可以写成切片形式

df.iloc[[1,3,4],:]#也可以直接省略":"df.iloc[1:4,:]#也可以直接省略":"

按条件筛选行

布尔索引

df.Age>30会返回一个Series类型的布尔值,将该布尔值带入df[]中即可筛选中年龄大于30的行

df[df.Age>30]

条件比较多时,需要加入逻辑符号,&,|,~分别表示"和",“或”,"非",例如筛选出年龄大于30且Embarked为’C'的行

df[(df.Age>30) & (df.Embarked=='C')]

df.query()查询

df.query('Age > 30')

条件比较多时,需要加入逻辑符号,and, or,not分别表示"和",“或”,"非",例如筛选出年龄大于30且Embarked为’C'的行

df.query('df.Age>30'and 'df.Embarked=="C"')

df.query()如果使用变量时,需要在变量前加上@符号

value="C"df.query('Embarked==@value')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。