python-pandas库set_index、reset_index用法区别
发布时间:2020-12-20 12:47:47 所属栏目:Python 来源:网络整理
导读:? ? 1、set_index() 作用:DataFrame可以通过set_index方法,可以 设置单索引和复合索引 。 格式:DataFrame. set_index (keys,drop=True,append=False,inplace=False,verify_integrity=False)? 参数含义: keys:列标签或列标签/数组列表,需要设置为索引的
? ? 1、set_index()
?案例1:drop的使用 # drop的使用: import pandas as pd df = pd.DataFrame({ ‘A‘: [‘A0‘,‘A1‘,‘A2‘,‘A3‘,‘A4‘],‘B‘: [‘B0‘,‘B1‘,‘B2‘,‘B3‘,‘B4‘],‘C‘: [‘C0‘,‘C1‘,‘C2‘,‘C3‘,‘C4‘],‘D‘: [‘D0‘,‘D1‘,‘D2‘,‘D3‘,‘D4‘]}) print (‘输出结果:n‘,df) print(‘------‘) df_drop_t = df.set_index(‘A‘,drop=True) # drop默认True,普通列被用作索引后,原列删除 print (df_drop_t) print(‘------‘) df_drop_f = df.set_index(‘A‘,drop=False) # 普通列被用作索引后,原列保留 print (df_drop_f) ‘‘‘ 输出结果: A B C D 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3 4 A4 B4 C4 D4 ------ B C D A A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 ------ A B C D A A0 A0 B0 C0 D0 A1 A1 B1 C1 D1 A2 A2 B2 C2 D2 A3 A3 B3 C3 D3 A4 A4 B4 C4 D4 ‘‘‘ ? 案例2:append的使用 # append的使用 import pandas as pd df = pd.DataFrame({ ‘A‘: [‘A0‘,‘D4‘]}) print (‘输出结果:n‘,df) print(‘------‘) df_append_f = df.set_index(‘A‘,append=False) # append默认为False,普通列变为索引,并覆盖原索引,原索引被删除 print (df_append_f) df_append_t = df.set_index(‘A‘,append=True) # 表示将普通列变为索引,原索引保留 print (df_append_t) print(‘------‘) ‘‘‘ 输出结果: A B C D 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3 4 A4 B4 C4 D4 ------ B C D A A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 ------ B C D A 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3 4 A4 B4 C4 D4 ‘‘‘ ? 案例3:Inplace的使用 # inplace的使用,这里我也没搞懂为啥输出None df = pd.DataFrame({ ‘A‘: [‘A0‘,‘D4‘]}) df_inplace_f = df.set_index(‘A‘,inplace=False) # inpla默认为False,表示适当修改DataFrame(不要创建新对象) print (‘输出结果:n‘,df_inplace_f) print(‘------‘) df1 = pd.DataFrame({ ‘A‘: [‘A0‘,‘D4‘]}) df_inplace_t = df1.set_index(‘A‘,inplace=True) # 表示原地不动 print (df_inplace_t) print (type(df_inplace_t)) ‘‘‘ 输出结果: B C D A A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 ------ None <class ‘NoneType‘> ‘‘‘ ? ? ? ? 2、reset_index()
# 一般情况下参数只使用到drop,这里只演示drop的使用 import pandas as pd df = pd.DataFrame({ ‘A‘: [‘A0‘,‘D4‘]}) print (‘输出结果ndf:n‘,df) print(‘------‘) df1 = df.reset_index(drop=False) # 默认为False,原有的索引不变,添加一列,列名index; print (df1) print(‘------‘) df2 = df.reset_index(drop=True) # 索引被还原为普通列,瞬间又被删掉了,同时在原位置重置原始索引012...; print (df2) ‘‘‘ 输出结果 df: A B C D 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3 4 A4 B4 C4 D4 ------ index A B C D 0 0 A0 B0 C0 D0 1 1 A1 B1 C1 D1 2 2 A2 B2 C2 D2 3 3 A3 B3 C3 D3 4 4 A4 B4 C4 D4 ------ A B C D 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3 4 A4 B4 C4 D4 ‘‘‘ ?
# 一般情况下参数只使用到drop,这里只演示drop的使用 import pandas as pd df = pd.DataFrame({ ‘A‘: [‘A0‘,‘D4‘]}) print (‘输出结果:ndf:n‘,df) print(‘------‘) newdf = df.set_index(‘A‘) # 这里的drop必需为True(默认为这里的drop必需为True),否则会报错ValueError: cannot insert A,already exists(意思是...只可意会不可言传哈哈) print (newdf) print(‘------‘) newdf1 = newdf.reset_index(drop=False) #索引列会被还原为普通列 print (newdf1) print(‘------‘) newdf2 = newdf.reset_index(drop=True) #索引被还原为普通列,瞬间又被删掉了,同时在原位置重置原始索引; print (newdf2) ‘‘‘ 输出结果: df: A B C D 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3 4 A4 B4 C4 D4 ------ B C D A A0 B0 C0 D0 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 ------ A B C D 0 A0 B0 C0 D0 1 A1 B1 C1 D1 2 A2 B2 C2 D2 3 A3 B3 C3 D3 4 A4 B4 C4 D4 ------ B C D 0 B0 C0 D0 1 B1 C1 D1 2 B2 C2 D2 3 B3 C3 D3 4 B4 C4 D4 ‘‘‘ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |