查询数据
Pandas实现按条件筛选与查询,较为常用的办法为df[df[colunm] boolean expr],比如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# 与 df[(df['gender'] == 'Female') & (df['total_bill'] > 20)] # 或 df[(df['gender'] == 'Female') | (df['total_bill'] > 20)] # in df[df['uid'].isin([21, 35, 37])] # 非 df[-(df['age'] == 1)] df[-df['uid'].isin([21, 35, 37])] # 正则表达式 df = df[(-df['app'].isin(sys_app)) & (-df.app.str.contains('^微信\d+$'))] # 对where条件筛选后只有一行的dataframe取其中某一列的值,其两种实现方式如下: total = df.loc[df['tip'] == 1.66, 'total_bill'].values[0] total = df.get_value(df.loc[df['tip'] == 1.66].index.values[0], 'total_bill') # 字符串截取 df = df['time'].str[10:16] # 对结果排序 df = df.sort_values(by, axis=0, ascending=True, inplace=False) ''' Args: by: 排序的索引,列名或行名 axis:默认为0,即纵向排序,如果为1,则是横向排序 ascending:布尔型,True则升序,可以是[True,False],即第一字段升序,第二个降序 inplace:布尔型,是否用排序后的数据框替换现有的数据框 kind:排序方法,{'quicksort', 'mergesort', 'heapsort'}, 默认为'quicksort'。 na_position : {'first', 'last'}, default 'last',默认缺失值排在最后面 ''' |