相思本是无凭语,

莫向花牋费泪行。

hanstary

相思本是无凭语,莫向花牋费泪行。

Pandas数据筛选

Pandas数据筛选

1.reindex()

df.reindex(index=列表,columns=列表)
import pandas as pd

data = [
    ['苹果', 5, '山东'],
    ['香蕉', 3, '海南'],
    ['橙子', 6, '江西'],
    ['西瓜', 2, '新疆'],
    ['草莓', 10, '辽宁'],
    ['葡萄', 8, '云南'],
    ['芒果', 7, '广西'],
    ['菠萝', 4, '广东'],
    ['梨', 4, '河北'],
    ['桃子', 5, '四川']
]
df = pd.DataFrame(data, columns=["水果", "价格", "产地"])
df1 = df.reindex([0, 1, 2, 4])
print(df1)

2.head() & tail()

df.head(n)
df.tail(n)
import pandas as pd

data = [
    ['苹果', 5, '山东'],
    ['香蕉', 3, '海南'],
    ['橙子', 6, '江西'],
    ['西瓜', 2, '新疆'],
    ['草莓', 10, '辽宁'],
    ['葡萄', 8, '云南'],
    ['芒果', 7, '广西'],
    ['菠萝', 4, '广东'],
    ['梨', 4, '河北'],
    ['桃子', 5, '四川']
]
df = pd.DataFrame(data, columns=["水果", "价格", "产地"])
print(df.head(2))
print("=================")
print(df.tail(2))

3.随机抽样

df.sample(n=整数) #具体个数
df.sample(frac=小数) #百分比抽取
import pandas as pd

data = [
    ['苹果', 5, '山东'],
    ['香蕉', 3, '海南'],
    ['橙子', 6, '江西'],
    ['西瓜', 2, '新疆'],
    ['草莓', 10, '辽宁'],
    ['葡萄', 8, '云南'],
    ['芒果', 7, '广西'],
    ['菠萝', 4, '广东'],
    ['梨', 4, '河北'],
    ['桃子', 5, '四川']
]
df = pd.DataFrame(data, columns=["水果", "价格", "产地"])
print(df.sample(n=2))
print("=================")
print(df.sample(frac=0.5))

4.逻辑比较

运算符 说明
&
|
~
df[条件]
import pandas as pd

data = [
    ['苹果', 5, '山东'],
    ['香蕉', 3, '海南'],
    ['橙子', 6, '江西'],
    ['西瓜', 2, '新疆'],
    ['草莓', 10, '辽宁'],
    ['葡萄', 8, '云南'],
    ['芒果', 7, '广西'],
    ['菠萝', 4, '广东'],
    ['梨', 4, '河北'],
    ['桃子', 5, '四川']
]
df = pd.DataFrame(data, columns=["水果", "价格", "产地"])
print(df[df["价格"] > 5])

5.过滤操作

(1)query()

df.query(判断条件)
import pandas as pd

data = [
    ['苹果', 5, '山东'],
    ['香蕉', 3, '海南'],
    ['橙子', 6, '江西'],
    ['西瓜', 2, '新疆'],
    ['草莓', 10, '辽宁'],
    ['葡萄', 8, '云南'],
    ['芒果', 7, '广西'],
    ['菠萝', 4, '广东'],
    ['梨', 4, '河北'],
    ['桃子', 5, '四川']
]
df = pd.DataFrame(data, columns=["水果", "价格", "产地"])
print(df.query("价格>5"))

(2)filter()

df.filter(items,like,regex)
# items 列表 表示选取哪些列
# like 字符串 模糊选择
# regex 正则表示式 表示根据正则表达式列选取列

三个参数是互斥的,选一个即可,items,like和regex的对象都是列名

import pandas as pd

data = [
    ['苹果', 5, '山东'],
    ['香蕉', 3, '海南'],
    ['橙子', 6, '江西'],
    ['西瓜', 2, '新疆'],
    ['草莓', 10, '辽宁'],
    ['葡萄', 8, '云南'],
    ['芒果', 7, '广西'],
    ['菠萝', 4, '广东'],
    ['梨', 4, '河北'],
    ['桃子', 5, '四川']
]
df = pd.DataFrame(data, columns=["水果", "价格", "产地"])
print(df.filter(items=["水果"]))
print("================")
print(df.filter(like="地"))
print("================")
print(df.filter(regex=".格"))

6.模式匹配

方法 说明
contains(A) 判断是否包含A
startswith 判断是否以A开头
endswith 判断是否以A结尾
import pandas as pd

data = [
    ['苹果', 5, '山东'],
    ['香蕉', 3, '海南'],
    ['橙子', 6, '江西'],
    ['西瓜', 2, '新疆'],
    ['草莓', 10, '辽宁'],
    ['葡萄', 8, '云南'],
    ['芒果', 7, '广西'],
    ['菠萝', 4, '广东'],
    ['梨', 4, '河北'],
    ['桃子', 5, '四川']
]
df = pd.DataFrame(data, columns=["水果", "价格", "产地"])
print(df["产地"].str.startswith("广"))

posted on 2024-07-02 10:33  hanstary  阅读(16)  评论(0编辑  收藏  举报

导航