Python之pandas:对pandas中dataframe数据的构造数据/输出索引、索引列重命名/字段去重/设置复合索引/根据列名获取对应索引等详细攻略


大雁
大雁 2022-09-19 11:16:56 49827
分类专栏: 资讯

Python之pandas:对pandas中dataframe数据的构造数据/输出索引、索引列重命名/字段去重/设置复合索引/根据列名获取对应索引等详细攻略

目录

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

知识点学习

实现代码

输出结果


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

知识点学习

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

实现代码

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

输出结果

  1. 查看原始索引: RangeIndex(start=0, stop=4, step=1)
  2. 输出当前的索引列名称: None
  3. Unnamed: 0 name ID age sex
  4. 0_Rename 0 Bob 1 NaN 男
  5. 1_Rename 1 LiSa 2 28.0
  6. 2_Rename 2 Mary 3 38.0
  7. 3_Rename 3 Alan 4 NaN NaN
  8. 输出当前的索引列名称: Index(['0_Rename', '1_Rename', '2_Rename', '3_Rename'], dtype='object')
  9. 输出当前的索引列名称: Index_From_ID
  10. Unnamed: 0 name ID age sex
  11. Index_From_ID
  12. 1 0 Bob 1 NaN 男
  13. 2 1 LiSa 2 28.0
  14. 3 2 Mary 3 38.0
  15. 4 3 Alan 4 NaN NaN
  16. 字段去重,某列去重后所有元素 ['男' '女' nan]
  17. 输出复合索引列: None
  18. Unnamed: 0 ID sex
  19. name age
  20. Bob NaN 0 1
  21. LiSa 28.0 1 2
  22. Mary 38.0 2 3
  23. Alan NaN 3 4 NaN
  24. the index of 【sex】 col is 7
文章知识点与官方知识档案匹配,可进一步学习相关知识

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=2013
赞同 0
评论 0 条
大雁L0
粉丝 0 发表 6 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2935
【软件正版化】软件正版化工作要点  2854
统信UOS试玩黑神话:悟空  2811
信刻光盘安全隔离与信息交换系统  2702
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1235
grub引导程序无法找到指定设备和分区  1205
点击报名 | 京东2025校招进校行程预告  162
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  160
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  156
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  154
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!