Python之pandas:對pandas中dataframe數(shù)據(jù)中的索引輸出、修改、重命名等詳細攻略
對pandas中dataframe數(shù)據(jù)中的索引輸出、修改、重命名等詳細攻略
知識點學習
- 構造數(shù)據(jù)
- 查看索引
- 修改列索引內元素名稱
# 重命名指定行索引名稱, []列表的長度必須與df行數(shù)一致,可以重復
# 輸出當前的索引列名稱 - 設置單個索引列
# 指定索引列,其中drop=False 表示保留原先索引列的數(shù)據(jù)
# 設置索引列名稱
# 輸出當前的索引列名稱 - 字段去重
# unique()對某列實現(xiàn)去重 - 設置復合索引:將多列設置為索引
# 輸出當前的索引列名稱
輸出結果
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
實現(xiàn)代碼
# 1、定義數(shù)據(jù)集
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數(shù)據(jù)中的索引輸出、修改、重命名等詳細攻略
# 構造數(shù)據(jù)
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行數(shù)一致,可以重復
print(nums_df)
# 輸出當前的索引列名稱
print(nums_df.index.name)
# 設置單個索引列
nums_df=nums_df.set_index('ID',drop=True) # 指定索引列,其中drop=False 表示保留原先索引列的數(shù)據(jù)
nums_df.index.name = 'Index_From_ID' # 設置索引列名稱
print('單個索引列:',nums_df.index.name) # 輸出當前的索引列名稱
print(nums_df)
# 字段去重
print('字段去重',nums_df["sex"].unique()) # unique()對某列實現(xiàn)去重
# 設置復合索引:將多列設置為索引
nums_df02 = nums_df02.set_index(["name", "age"])
print('復合索引列:',nums_df02.index.name) # 輸出當前的索引列名稱
print(nums_df02)