无列名:pandas 下的 DataFrame 会默认增加行号和列号,index 自然也是integer形式
>> df_a = pd.DataFrame(data=[['A', 'B', 'C'], ['A1', 'B1', 'C1']]) >> df_a 0 1 2 0 A B C 1 A1 B1 C1 >> df_a.index RangeIndex(start=0, stop=2, step=1)
指定列名:
>> df_a = pd.DataFrame(data=[['A', 'B', 'C'], ['A1', 'B1', 'C1']], columns=['first', 'second', 'third']) >> df_a first second third 0 A B C 1 A1 B1 C1 >> df_a.index RangeIndex(start=0, stop=2, step=1)
1. set_index:为DataFrame指定索引
- set_index:可以设置单索引,也可以设置复合索引;
- set_index 可选参数
- inplace:设置是否就地发生;
- 默认为False
- inplace=True
- inplace:设置是否就地发生;
对于有列名的情况:
>> df_a = pd.DataFrame(data=[['A', 'B', 'C'], ['A1', 'B1', 'C1']],
columns=['first', 'second', 'third'])
>> df_a.set_index(['first', 'second'])
third
first second
A B C
A1 B1 C1
# 可以看到,列名与列索引是错开的;
>> df_a_indexed = df_a.set_index(['first', 'second'])
>> df_a_indexed.index
MultiIndex(levels=[['A', 'A1'], ['B', 'B1']],
labels=[[0, 1], [0, 1]],
names=['first', 'second'])
2. reset_index:重置索引
>> df_a_indexed.reset_index().index
RangeIndex(start=0, stop=2, step=1)