product nums date 2025-01-01 A 26 2025-01-02 A 7 2025-01-03 A 19 2025-01-04 B 9 2025-01-05 C 29 2025-01-06 A 9 2025-01-07 B 17 2025-01-08 B 17 2025-01-09 C 28 2025-01-10 C 2
# 也可以把dataframe中的某一列值或多列压入到索引当中
df = df.set_index('product',append=True)
df
复制代码
nums date product 2025-01-01 A 26 2025-01-02 A 7 2025-01-03 A 19 2025-01-04 B 9 2025-01-05 C 29 2025-01-06 A 9 2025-01-07 B 17 2025-01-08 B 17 2025-01-09 C 28 2025-01-10 C 2 这里看到固然已经把product这一列压到索引中,但是你会发现product其实只有三个值'A','B','C',你想要以product为最高层的索引只显示A,B,C 那pandas刚好有一个函数可以把两个索引进行互换,swaplevel()
swaplevel()
nums product date A 2025-01-01 26 2025-01-02 7 2025-01-03 19 B 2025-01-04 9 C 2025-01-05 29 A 2025-01-06 9 B 2025-01-07 17 2025-01-08 17 C 2025-01-09 28 2025-01-10 2 这个时候又会疑惑为什么还会有重复,这是因为A,B,C的排列顺序是随机的只有少数同样的值连续几行一起排序,那这里我们对索引进行一个排序
sort_index()
date nums product A 2025-01-01 26 A 2025-01-02 7 A 2025-01-03 19 A 2025-01-06 9 B 2025-01-04 9 B 2025-01-07 17 B 2025-01-08 17 C 2025-01-05 29 C 2025-01-09 28 C 2025-01-10 2
# 把所有索引拿出并创建整数索引
df = df.reset_index(drop=False)
df
复制代码
product date nums 0 A 2025-01-01 26 1 A 2025-01-02 7 2 A 2025-01-03 19 3 A 2025-01-06 9 4 B 2025-01-04 9 5 B 2025-01-07 17 6 B 2025-01-08 17 7 C 2025-01-05 29 8 C 2025-01-09 28 9 C 2025-01-10 2 reindex()