小言_互联网的博客

Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略

209人阅读  评论(0)

Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略

 

 

 

 

 

目录

对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略

知识点学习

输出结果

实现代码


 

 

 

对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略

知识点学习

  • 构造数据
  • 查看索引
  • 修改列索引内元素名称
    # 重命名指定行索引名称, []列表的长度必须与df行数一致,可以重复
    # 输出当前的索引列名称
  • 设置单个索引列
    # 指定索引列,其中drop=False 表示保留原先索引列的数据
    # 设置索引列名称
    # 输出当前的索引列名称
  • 字段去重
    # unique()对某列实现去重
  • 设置复合索引:将多列设置为索引
    # 输出当前的索引列名称

 

 

 

输出结果


  
  1. RangeIndex(start= 0, stop= 4, step= 1)
  2. Unnamed: 0 name ID age sex
  3. 0_Rename 0 Bob 1 NaN 男
  4. 1_Rename 1 LiSa 2 28.0
  5. 2_Rename 2 Mary 3 38.0
  6. 3_Rename 3 Alan 4 NaN NaN
  7. None
  8. 单个索引列: Index_From_ID
  9. Unnamed: 0 name age sex
  10. Index_From_ID
  11. 1 0 Bob NaN 男
  12. 2 1 LiSa 28.0
  13. 3 2 Mary 38.0
  14. 4 3 Alan NaN NaN
  15. 字段去重 [ '男' '女' nan]
  16. 复合索引列: None
  17. Unnamed: 0 ID sex
  18. name age
  19. Bob NaN 0 1
  20. LiSa 28.0 1 2
  21. Mary 38.0 2 3
  22. Alan NaN 3 4 NaN

 

 

 

 

实现代码


  
  1. # 1、定义数据集
  2. contents={ "name": [ 'Bob', 'LiSa', 'Mary', 'Alan'],
  3. "ID": [ 1, 2, 3, 4], # 输出 NaN
  4. "ID02": [ 1, 2, ' ', None], # 输出 NaN
  5. "age": [np.nan, 28, 38 , '' ], # 输出
  6. "age02": [ 14, 26, 24 , 6],
  7. "age03": [ 14, '26', '24' , '6'],
  8. "born": [pd.NaT, pd.Timestamp( "1990-01-01"), pd.Timestamp( "1980-01-01"), ''], # 输出 NaT
  9. "sex": [ '男', '女', '女', None,], # 输出 None
  10. "hobbey":[ '打篮球', '打羽毛球', '打乒乓球', '',], # 输出
  11. "money":[ 200.0, 240.0, 290.0, 300.0], # 输出
  12. "weight":[ 140.5, 120.8, 169.4, 155.6], # 输出
  13. "test01":[ 1, 2.123456789, 3.123456781011126, 4.123456789109999], # 输出
  14. "test02":[ 1, 2.123456789, 3.123456781011126, 4.123456789109999], # 输出
  15. }
  16. data_frame = pd.DataFrame(contents)
  17. # Python之pandas:对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略
  18. # 构造数据
  19. cols01=[ "name", "ID", "age", "sex",]
  20. nums_df_temp=data_frame.loc[:,cols01]
  21. nums_csv_file= "nums_df_temp.csv"
  22. nums_df_temp.to_csv(nums_csv_file)
  23. nums_df=pd.read_csv(nums_csv_file)
  24. nums_df02=nums_df.copy()
  25. # 查看索引
  26. print( '查看原始索引',nums_df.index)
  27. # 修改列索引内元素名称
  28. nums_df.index = [ "0_Rename", "1_Rename", "2_Rename", "3_Rename"] # 重命名指定行索引名称, []列表的长度必须与df行数一致,可以重复
  29. print(nums_df)
  30. # 输出当前的索引列名称
  31. print(nums_df.index.name)
  32. # 设置单个索引列
  33. nums_df=nums_df.set_index( 'ID',drop= True) # 指定索引列,其中drop=False 表示保留原先索引列的数据
  34. nums_df.index.name = 'Index_From_ID' # 设置索引列名称
  35. print( '单个索引列:',nums_df.index.name) # 输出当前的索引列名称
  36. print(nums_df)
  37. # 字段去重
  38. print( '字段去重',nums_df[ "sex"].unique()) # unique()对某列实现去重
  39. # 设置复合索引:将多列设置为索引
  40. nums_df02 = nums_df02.set_index([ "name", "age"])
  41. print( '复合索引列:',nums_df02.index.name) # 输出当前的索引列名称
  42. print(nums_df02)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


转载:https://blog.csdn.net/qq_41185868/article/details/115427128
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场