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中原来的元素相同(只是排序不同)。