Python使用pandas如何筛选DataFrame指定列大于等于阈值的行?
解决方法
- 先修正你现有代码里的笔误:
df_my['Bill Date']应为df['Bill Date'],否则会直接抛出变量未定义的报错 - 筛选逻辑可以直接在原有条件后追加G列的数值判断,注意每个独立条件要用括号包裹,避免优先级错误
你可以直接用修改后的完整代码:
import pandas as pd import numpy as np import openpyxl from numpy.random import choice df = pd.read_excel('filepath', sheet_name = 'Sheet1') # 可选:如果G列读入后是字符串格式,先转成数值型,避免比较出错 df['G'] = pd.to_numeric(df['G'], errors='coerce') # 追加G列>=1000的筛选条件 df_sample = df.loc[ (df['Bill Description'].str.contains("Invoice")) & (df['Bill Date'].ge('15/12/2019')) & (df['G'] >= 1000) ]
如果你的G列实际列名不是G,把代码里的G替换成你实际的列名即可。
如果你需要在已经筛选得到df_sample之后再单独做G列的筛选,也可以单独执行下面的代码:
df_final = df_sample[df_sample['G'] >= 1000]
内容的提问来源于stack exchange,提问作者ejbeh
相关产品推荐
相关产品推荐

