Python-科学计算-pandas-07-Df多条件筛选

2020-03-02  本文已影响0人  Data_Python_VBA

微信公众号原文

系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
pandas:0.19.2

  • 这个系列讲讲Python的科学计算版块
  • 今天讲讲pandas模块:根据条件对Df进行筛选

Part 1:示例

  1. 已知df_1,有3列["value1", "value2", "value3"],
  2. 不同筛选条件下,获取新的df
    • 筛选条件1:value2列大于0.6,且,value3列小于5,获得df_2
    • 筛选条件2:value2列大于0.6,或,value3列小于5,获得df_3
    • 筛选条件3:value2列大于0.6,且,value1列取值P1或者 P2,获得df_4
    • 筛选条件4:value2列大于0.6,或,value1列取值P1或者 P2,获得df_5

df_1

1.png

df_2

df_2.png

df_3

df_3.png

df_4

df_4.png

df_5

df_5.png

Part 2:代码

import pandas as pd

dict_1 = {"value1": ["P1", "P2", "P3"],
          "value2": [0.5, 0.8, 1.0],
          "value3": [1, 5, 3]}

df_1 = pd.DataFrame(dict_1, columns=["value1", "value2", "value3"])
print(df_1)

print("\n两个条件同时满足")
df_2 = df_1[(df_1["value2"] > 0.6) & (df_1["value3"] < 5)]
print(df_2)

print("\n满足任一条件")
df_3 = df_1[(df_1["value2"] > 0.6) | (df_1["value3"] < 5)]
print(df_3)

print("\n两个条件同时满足")
list_1 = ["P1", "P2"]
df_4 = df_1[(df_1["value2"] > 0.6) & (df_1["value1"].isin(list_1))]
print(df_4)

print("\n满足任一条件")
list_1 = ["P1", "P2"]
df_5 = df_1[(df_1["value2"] > 0.6) | (df_1["value1"].isin(list_1))]
print(df_5)

代码截图

2.png

Part 3:部分代码解读

  1. df_2 = df_1[(df_1["value2"] > 0.6) & (df_1["value3"] < 5)],两个条件分别放置于()内,即df[(条件1) & (条件2)]
    • 逻辑,使用 &
    • 逻辑,使用 |
  2. 比较运算符直接使用>,<
  3. 在一定范围内使用isin,之前的文章有介绍过

本文为原创作品,欢迎分享朋友圈

长按图片识别二维码,关注本公众号
Python 优雅 帅气


12x0.8.jpg
上一篇 下一篇

猜你喜欢

热点阅读