pandas根据index操作与重新排列

pandas有三个操作index的方法

  • reindex
DataFrame.reindex(self, labels=None, index=None, columns=None, axis=None, method=None, copy=True, level=None, fill_value=nan, limit=None, tolerance=None)
  • reset_index
DataFrame.reset_index(self, level: Union[Hashable, Sequence[Hashable], NoneType] = None, drop: bool = False, inplace: bool = False, col_level: Hashable = 0, col_fill: Union[Hashable, NoneType] = '') → Union[ForwardRef('DataFrame'), NoneType]
  • set_index
DataFrame.set_index(self, keys, drop=True, append=False, inplace=False, verify_integrity=False)

reset_index用于将dataframe的index重置为0-N(行数),如果不要原来的index记得drop=True

set_index用于将某一列设置为index,如reset_index('tag'),默认情况下drop=True,被设置为index的那一列会从dataframe中删去,如果想保留记得`drop=False

reindex用于根据某个list重新设置index,其作用相当于重新排列各行,如

In [14]: df.reindex(["Z", "C", "A"])
Out[14]:
company  Amazon  Apple  Yahoo
Z             0      0    150
C           173      0      0
A             0    130      0

需要注意的是,如果原来dataframe的index是[1,2,3]上面的代码无效。也就是用于reindex的list中的元素必须与dataframe的index中原来的元素相同(只是排序不同)。

原文地址:https://www.cnblogs.com/yaos/p/14014142.html