知识点学习
构造数据
查看索引
修改列索引内元素名称
# 重命名指定行索引名称, []列表的长度必须与df行数一致,可以重复
# 输出当前的索引列名称
设置单个索引列
# 指定索引列,其中drop=False 表示保留原先索引列的数据
# 设置索引列名称
# 输出当前的索引列名称
字段去重
# unique()对某列实现去重
设置复合索引:将多列设置为索引
# 输出当前的索引列名称
输出结果
RangeIndex(start=0, stop=4, step=1)
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
None
单个索引列: Index_From_ID
Unnamed: 0 name age sex
Index_From_ID
1 0 Bob NaN 男
2 1 LiSa 28.0 女
3 2 Mary 38.0 女
4 3 Alan 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
实现代码
# 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()
# 查看索引
print('查看原始索引',nums_df.index)
# 修改列索引内元素名称
nums_df.index = ["0_Rename","1_Rename","2_Rename","3_Rename"] # 重命名指定行索引名称, []列表的长度必须与df行数一致,可以重复
print(nums_df)
# 输出当前的索引列名称
print(nums_df.index.name)
# 设置单个索引列
nums_df=nums_df.set_index('ID',drop=True) # 指定索引列,其中drop=False 表示保留原先索引列的数据
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)