pandas—pandas.DataFrame.query与pandas.DataFrame.reset_index

1.pandas.DataFrame.query

官网

DataFrame.query(expr, inplace=False, **kwargs)

描述

使用布尔表达式查询DataFrame的列

参数

expr : str
要计算的查询字符串

inplace : bool
查询是应该修改数据还是返回修改后的副本

**kwargs

返回

DataFrame or None
由提供的查询表达式生成的DataFrame;如果inplace = True,则为None

官方案例

df = pd.DataFrame({
    
    'A': range(1, 6),
                   'B': range(10, 0, -2),
                   'C C': range(10, 5, -1)})
                   
df
   A   B  C C
0  1  10   10
1  2   8    9
2  3   6    8
3  4   4    7
4  5   2    6


df.query('A > B')
   A  B  C C
4  5  2    6

# 前面的表达式等价于
df[df.A > df.B]
   A  B  C C
4  5  2    6


# 对于名称中有空格的列,可以使用反引号
df.query('B == `C C`')
   A   B  C C
0  1  10   10

# 前面的表达式等价于
df.query('B == `C C`')
   A   B  C C
0  1  10   10

2.pandas.DataFrame.reset_index

官网

DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')

描述

重置索引或索引的级别。
重置DataFrame的索引,并使用默认索引。
如果DataFrame具有MultiIndex,则此方法可以删除一个或多个级别

参数

level : int, str, tuple, or list, default None
仅从索引中删除给定的级别,默认情况下删除所有级别。

drop : bool, default False
不要尝试将索引插入dataframe columns,这会将索引重置为默认的整数索引

inplace : bool, default False
if True,则在原对象上修改
if False, 则返回修改后的对象

col_level : int or str, default 0
如果列有多个级别,请确定将标签插入到哪个级别。默认情况下,它被插入第一级。

col_fill : object, default ‘’
如果列具有多个级别,请确定如何命名其他级别。如果为None,则重复索引名称。

返回

DataFrame or None
if False,具有新索引的DataFrame;如果inplace = True,则为None

官方案例

在这里插入图片描述
重置索引时,会将旧索引添加为列,并使用新的顺序索引
在这里插入图片描述
我们可以使用drop参数来避免将旧索引添加为列

将reset_index与MultiIndex一起使用

在这里插入图片描述
在这里插入图片描述
如果我们不删除索引,则默认情况下,它位于顶层。
我们可以将其放在另一个级别:

在这里插入图片描述
当索引插入到另一个级别下时,我们可以使用参数col_fill指定哪个级别
在这里插入图片描述
如果我们为col_fill指定了不存在的级别,则会创建它
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46649052/article/details/112734281