从xlsx文件查询日期范围和产品尺寸

时间:2019-03-11 07:27:35

标签: python-3.x pandas where-clause

我正在使用python 3.6来做到这一点。以下是我想查询的一些重要列。

 Auto-Gen Index : Product Container : Ship Date :.......
    0           :   Large Box       : 2017-01-09:.......
    1           :   Large Box       : 2012-07-15:.......
    2           :   Small Box       : 2012-07-18:.......
    3           :   Large Box       : 2012-07-31:.......

我想查询表示大箱子作为其产品容器的行,并且发货日期必须在2012年的7月内。

 file_name = r'''Sample-Superstore-Subset-Excel.xlsx'''
 df = read_excel(file_name, sheet_name = my_sheet)
 lb = df.loc[df['Product Container'] == 'Large Box'] //Get large box
 july = lb[(lb['Ship Date'] > '2012-07-01') & (lb['Ship Date'] < '2012-07-31')]

我只是想知道如何使用查询以及python(pd.query())的条件?

1 个答案:

答案 0 :(得分:0)

如果您的问题是何时使用locwhere,请参阅我的答案here

  

loc视为过滤器-仅给我提供部分df   符合条件。

     

where最初来自numpy。它在数组上运行并检查是否   每个元素都符合条件。因此,它可以为您提供整个阵列,   结果或NaN。哪里的一个不错的功能是您还可以   支持不同的东西,例如df2 = df.where(df ['Goals']> 10,   other ='0'),将不满足条件的值替换为0。

如果您要询问何时使用query,则AFAIK除了性能外没有其他真正的理由。如果数据集非常大,则查询速度会更快。有关高级性能here的更多信息。