網站首頁 編程語言 正文
pandas.DataFrame行名(index)和列名(columns)的修改方法如下。
rename()
- 任意的行名(index)和列名(columns)的修改
add_prefix(), add_suffix()
- 列名的接頭詞和結尾詞的追加
index和columns元素的更新
- 行名和列名全部修改
接下來,對每個方法進行說明。
rename()
- 多個行名和列名的修改
- 原DataFrame的修改(參數inplace)
- 使用lambda表達式和函數進行批處理
add_prefix(), add_suffix()
index和columns元素的更新
首先,先生成一個DaraFrame。
import pandas as pd
df = pd.DataFrame({'A': [11, 21, 31],
? ? ? ? ? ? ? ? ? ?'B': [12, 22, 32],
? ? ? ? ? ? ? ? ? ?'C': [13, 23, 33]},
? ? ? ? ? ? ? ? ? index=['ONE', 'TWO', 'THREE'])
print(df)
# ? ? ? ? A ? B ? C
# ONE ? ?11 ?12 ?13
# TWO ? ?21 ?22 ?23
# THREE ?31 ?32 ?33
DataFrame.rename()
函數DataFrame.rename()可以對任意行和列的名稱進行修改。
DataFrame.rename()的參數有index和columns,使用"{舊值:新值}"字典的形式進行參數的指定。
index為行,columns為列。只想修改某行或者某列的時候,只需要單獨指定一個參數即可。
修改后,返回一個新的DataFrame,原DataFrame并沒有被修改。
df_new = df.rename(columns={'A': 'a'}, index={'ONE': 'one'})
print(df_new)
# ? ? ? ? a ? B ? C
# one ? ?11 ?12 ?13
# TWO ? ?21 ?22 ?23
# THREE ?31 ?32 ?33
print(df)
# ? ? ? ? A ? B ? C
# ONE ? ?11 ?12 ?13
# TWO ? ?21 ?22 ?23
# THREE ?31 ?32 ?33
多個行名和列名的修改
多個行名和列名可以同時修改。只需要追加參數(字典的元素)。
print(df.rename(columns={'A': 'a', 'C': 'c'}))
# a B c
# ONE 11 12 13
# TWO 21 22 23
# THREE 31 32 33
原DataFrame的修改(參數inplace)
默認的設置為原DataFrame不變,返回一個新的DataFrame。
當參數inplace為True時,原DataFrame將會被修改。返回值為None。
df_org = df.copy()
df_org.rename(columns={'A': 'a'}, index={'ONE': 'one'}, inplace=True)
print(df_org)
# a B C
# one 11 12 13
# TWO 21 22 23
# THREE 31 32 33
使用lambda表達式和函數進行批處理
rename()的參數index和columns值也可以指定為函數方法。
比如,大小寫的轉換。
print(df.rename(columns=str.lower, index=str.title))
# a b c
# One 11 12 13
# Two 21 22 23
# Three 31 32 33
lambda表達式-無名函數的指定。
print(df.rename(columns=lambda s: s*3, index=lambda s: s + '!!'))
# AAA BBB CCC
# ONE!! 11 12 13
# TWO!! 21 22 23
# THREE!! 31 32 33
add_prefix(), add_suffix()
列名的接頭詞和結尾詞的追加方法。add_prefix()和add_suffix()。
在方法的參數里指定接頭詞或者結尾詞。
print(df.add_prefix('X_'))
# ? ? ? ?X_A ?X_B ?X_C
# ONE ? ? 11 ? 12 ? 13
# TWO ? ? 21 ? 22 ? 23
# THREE ? 31 ? 32 ? 33
print(df.add_suffix('_X'))
# ? ? ? ?A_X ?B_X ?C_X
# ONE ? ? 11 ? 12 ? 13
# TWO ? ? 21 ? 22 ? 23
# THREE ? 31 ? 32 ? 33
add_prefix()和add_suffix()只能對列名(columns)進行修改。想要對行名進行修改的時候,可以參照上述lambda表達式的使用方法。
index和columns元素的更新
當想要對DataFrame里全部的元素修改或更新的時候,可以使用rename()方法的參數index,columns進行指定。
可以在index,columns屬性中指定List,tuple,pandas.Series等。
df.index = [1, 2, 3]
df.columns = ['a', 'b', 'c']
print(df)
# ? ? a ? b ? c
# 1 ?11 ?12 ?13
# 2 ?21 ?22 ?23
# 3 ?31 ?32 ?33
此時,請注意,如果列表等的大?。ㄔ財担┡c行數/列數不一致時,則會發生錯誤。
# df.index = [1, 2, 3, 4]
# ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements
原文鏈接:https://blog.csdn.net/qq_18351157/article/details/104410294
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-09-08 Python報錯SyntaxError:unexpected?EOF?while?parsing的解
- 2024-04-05 idea使用docker生成鏡像(打包鏡像,導入鏡像,導出鏡像)
- 2022-09-25 Redis數據的刪除策略
- 2022-03-16 .Net?6中WebApplicationBuilder介紹和用法_自學過程
- 2022-03-30 C#數據類型轉換(顯式轉型、隱式轉型、強制轉型)_C#教程
- 2022-05-23 ZooKeeper分布式協調服務設計核心概念及安裝配置_zabbix
- 2024-03-06 idea 導入Redis Spring Data Redis使用方式
- 2022-08-12 C#?Unicode編碼解碼的實現_C#教程
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支