Python之pandas:对pandas中dataframe数据的构造数据/输出索引、索引列重命名/字段去重/设置复合索引/根据列名获取对应索引等详细攻略
目录
对pandas中dataframe数据中的索引输出、修改、重命名等详细攻略
-
-
- import pandas as pd
- import numpy as np
-
-
- 1、定义数据集
- contents={"name": ['Bob', 'LiSa', 'Mary', 'Alan'],
- "ID": [1, 2, 3, 4], 输出 NaN
- "ID02": [1, 2, ' ', None], 输出 NaN
- "age": [np.nan, 28, 38 , '' ], 输出
- "age02": [14, 26, 24 , 6],
- "age03": [14, '26', '24' , '6'],
- "born": [pd.NaT, pd.Timestamp("1990-01-01"), pd.Timestamp("1980-01-01"), ''], 输出 NaT
- "sex": ['男', '女', '女', None,], 输出 None
- "hobbey":['打篮球', '打羽毛球', '打乒乓球', '',], 输出
- "money":[200.0, 240.0, 290.0, 300.0], 输出
- "weight":[140.5, 120.8, 169.4, 155.6], 输出
- "test01":[1, 2.123456789, 3.123456781011126, 4.123456789109999], 输出
- "test02":[1, 2.123456789, 3.123456781011126, 4.123456789109999], 输出
- }
-
- data_frame = pd.DataFrame(contents)
-
- Python之pandas:对pandas中dataframe数据的构造数据/输出索引、索引列重命名/字段去重/设置复合索引/根据列名获取对应索引等详细攻略
-
-
- 构造数据
- cols01=["name","ID","age","sex",]
- nums_df_temp=data_frame.loc[:,cols01]
- nums_csv_file="nums_df_temp.csv"
- nums_df_temp.to_csv(nums_csv_file)
- nums_df=pd.read_csv(nums_csv_file)
- nums_df02=nums_df.copy(deep=True)
-
-
- 查看索引
- print('查看原始索引:',nums_df.index)
- print('输出当前的索引列名称:',nums_df.index.name) 默认None
-
-
- 修改列索引内元素名称
- nums_df.index = ["0_Rename","1_Rename","2_Rename","3_Rename"] 重命名指定行索引名称, []列表的长度必须与df行数一致,可以重复
- print(nums_df)
- print('输出当前的索引列名称:',nums_df.index)
-
-
-
- 设置单个索引列
- nums_df=nums_df.set_index('ID',drop=False) 指定索引列,其中drop=False、True表示保留原先索引列的数据
- nums_df.index.name = 'Index_From_ID' 设置索引列名称
- print('输出当前的索引列名称:',nums_df.index.name) 输出当前的索引列名称
- print(nums_df)
-
-
-
-
- 字段去重
- print('字段去重,某列去重后所有元素',nums_df["sex"].unique()) unique()对某列实现去重
-
-
-
-
-
-
- 设置复合索引:将多列设置为索引
- nums_df02 = nums_df02.set_index(["name", "age"])
- print('输出复合索引列:',nums_df02.index.name) 输出当前的索引列名称
- print(nums_df02)
-
-
-
- 根据列名获取对应索引
- col_name = 'sex'
- col_name_index =data_frame.columns.get_loc(col_name)
- print('the index of 【%s】 col is'% col_name,col_name_index)
-
-
-
-
- 查看原始索引: RangeIndex(start=0, stop=4, step=1)
- 输出当前的索引列名称: None
- Unnamed: 0 name ID age sex
- 0_Rename 0 Bob 1 NaN 男
- 1_Rename 1 LiSa 2 28.0 女
- 2_Rename 2 Mary 3 38.0 女
- 3_Rename 3 Alan 4 NaN NaN
- 输出当前的索引列名称: Index(['0_Rename', '1_Rename', '2_Rename', '3_Rename'], dtype='object')
- 输出当前的索引列名称: Index_From_ID
- Unnamed: 0 name ID age sex
- Index_From_ID
- 1 0 Bob 1 NaN 男
- 2 1 LiSa 2 28.0 女
- 3 2 Mary 3 38.0 女
- 4 3 Alan 4 NaN NaN
- 字段去重,某列去重后所有元素 ['男' '女' nan]
- 输出复合索引列: None
- Unnamed: 0 ID sex
- name age
- Bob NaN 0 1 男
- LiSa 28.0 1 2 女
- Mary 38.0 2 3 女
- Alan NaN 3 4 NaN
- the index of 【sex】 col is 7
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!