Python 带重置索引的Pandas链方法drop/dropna

Python 带重置索引的Pandas链方法drop/dropna,python,pandas,indexing,reset,Python,Pandas,Indexing,Reset,我有一个问题,我不知道为什么会这样,我想获得更多的知识 所以我的问题是,我试图用drop或dropna和reset_index链接方法,但出于某种原因,当我提到reset_index的inplace=True参数时,它不起作用 当我使用此选项时: df.dropna(how='all',axis=(0,1)).reset_索引(drop=True) df.drop(索引=0)。reset_索引(drop=True) 并将其保存到一个变量中,它似乎正在工作。但当我使用这个: df.dropna(

我有一个问题,我不知道为什么会这样,我想获得更多的知识

所以我的问题是,我试图用drop或dropna和reset_index链接方法,但出于某种原因,当我提到reset_index的
inplace=True
参数时,它不起作用

当我使用此选项时:

df.dropna(how='all',axis=(0,1)).reset_索引(drop=True)
df.drop(索引=0)。reset_索引(drop=True)
并将其保存到一个变量中,它似乎正在工作。但当我使用这个:

df.dropna(how='all',axis=(0,1)).reset_索引(drop=True,inplace=True)
df.drop(索引=0).reset_索引(drop=True,inplace=True)
然后打印df.head(),它似乎不起作用

不确定我在这里遗漏了什么,但我想更好地理解方法链接


谢谢

> P> >理解为什么<代码>大熊猫< /代码>中的方法链接不适用于<代码> in Stest= true考虑在没有方法链接的引擎盖下发生了什么:

  • 将创建数据帧的副本
  • 方法计算完成
  • 结果被分配回原始数据帧
  • 返回类型为“无”
  • 另一方面,当
    inplace=False
    时,在经过
    1和2
    之后,该方法返回应手动分配的数据帧副本

    如果在方法链之间设置
    inplace=True
    ,例如:

    df.method1().method2(inplace=True).method3()

    下一种方法,即
    method3
    在接收到类型为
    None
    的对象时将失败

    现在,你可能会想,如果是这样的话,我们最好在最后设置它:

    df.method1().method2(inplace=True)

    然而,捕获物是;链中的每个方法都会为下一个方法返回一个数据帧副本,而下一个方法又会创建该副本的另一个副本。这里,method2对method1的副本(
    copy1
    )的副本(
    copy2
    )进行操作,进行一些计算,将
    copy2
    保存回
    copy1
    ,并在销毁所有中间副本的同时返回
    None


    这就是为什么在将方法链接在一起时应避免使用
    inplace=True

    使用
    inplace=True
    调用的pandas方法返回None,然后将其分配给
    =
    左侧的任何变量。您不能将
    inplace=True
    与方法链接结合起来:谢谢您的回答。因此,即使在最后一个函数中给出了inplace=True,它也不可能吗?我现在明白为什么不可以了,因为第一个函数返回dataframe,第二个函数返回特定dataframe,而这个dataframe并没有保存在任何地方。非常感谢。