首页 > 其他分享 >pandas-修改列行名称

pandas-修改列行名称

时间:2023-09-01 23:11:05浏览次数:39  
标签:rename index df 列行 修改 pd print pandas columns

pandas-修改列行名称

目录

行和列名全部修改

columns属性

import pandas as pd

df = pd.DataFrame({'a':[1,2,3],
                   'b':[4,5,6],
                   'c':[7,8,9]})
print(df)

#    a  b  c
# 0  1  4  7
# 1  2  5  8
# 2  3  6  9

print(df.columns)
df.columns = ["A", "B", "c"]
print(df.columns)

#Index(['a', 'b', 'c'], dtype='object')
#Index(['A', 'B', 'c'], dtype='object')

index属性

import pandas as pd

df = pd.DataFrame({'a':[1,2,3],
                   'b':[4,5,6],
                   'c':[7,8,9]})

print(df)
print(df.index)
df.index = ["one", "two", "three"]
print(df.index)

#RangeIndex(start=0, stop=3, step=1)
#Index(['one', 'two', 'three'], dtype='object')

列表等的大小(元素数)与行数/列数不一致时,则会发生错误。

 df.index = [1, 2, 3, 4]
# ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements
import pandas as pd
import numpy as np

data = np.array([[1, 2, 3, 4, 5],
                 [2, 3, 4, 5, 6],
                 [1, 0, 3, 8, 5]])
df = pd.DataFrame(data)
print(df)

#    0  1  2  3  4
# 0  1  2  3  4  5
# 1  2  3  4  5  6
# 2  1  0  3  8  5


df.index = ['a', 'b', 'c']
df.columns = ['A', 'B', 'C', 'D', 'E']
print(df)

#    A  B  C  D  E
# a  1  2  3  4  5
# b  2  3  4  5  6
# c  1  0  3  8  5

rename函数

任意的行名(index)和列名(columns)的修改

函数DataFrame.rename()可以对任意行和列的名称进行修改。
DataFrame.rename()的参数有index和columns,使用"{旧值:新值}"字典的形式进行参数的指定。

df = pd.DataFrame({'A': [11, 21, 31],
                   'B': [12, 22, 32],
                   'C': [13, 23, 33]},
                  index=['ONE', 'TWO', 'THREE'])

#        A   B   C
#ONE    11  12  13
#TWO    21  22  23
#THREE  31  32  33


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


# 当参数inplace为True时,原DataFrame将会被修改

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

df5 = df.copy()


rename()的参数index和columns值也可以指定为函数方法。

使用lambda表达式和函数进行批处理


df3=df.rename(columns=str.lower, index=str.title)
print(df3)
#         a   b   c
# One    11  12  13
# Two    21  22  23
# Three  31  32  33


df4=df.rename(columns=lambda s: s*3, index=lambda s: s + '!!')
print(df4)
#          AAA  BBB  CCC
# ONE!!     11   12   13
# TWO!!     21   22   23
# THREE!!   31   32   33

rename_axis()

设置索引或列的axis名称。 索引标签(轴标签名称)

DataFrame.rename_axis(self, mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False) 

支持两种调用
(index=index_mapper, columns=columns_mapper, ...)
(mapper, axis={'index', 'columns'}, ...)
import pandas as pd
import numpy as np

df = pd.DataFrame({"num_legs": [4, 4, 2],
                    "num_arms": [0, 0, 2]},
                   ["dog", "cat", "monkey"])
print(df)

#        num_legs  num_arms
#dog            4         0
#cat            4         0
#monkey         2         2

df1 = df.rename_axis("animal")
print(df1)


#        num_legs  num_arms
#animal
#dog            4         0
#cat            4         0
#monkey         2         2

前缀后缀

add_prefix()add_suffix()

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)
df1 = df.add_prefix("A_",axis=1)
df2 = df.add_prefix("B_",axis=1)

df12 = pd.concat([df1, df2], axis=1)

print(df12)

#        A   B   C
#ONE    11  12  13
#TWO    21  22  23
#THREE  31  32  33
#       A_A  A_B  A_C  B_A  B_B  B_C
#ONE     11   12   13   11   12   13
#TWO     21   22   23   21   22   23
#THREE   31   32   33   31   32   33


df3=df3.add_suffix("_P",axis=0)

print(df3)
#          A   B   C
#ONE_P    11  12  13
#TWO_P    21  22  23
#THREE_P  31  32  33

参考资料

https://www.cnblogs.com/wang_yb/p/17593674.html

https://www.cnblogs.com/BlairGrowing/p/15867390.html

https://www.cjavapy.com/article/722/

标签:rename,index,df,列行,修改,pd,print,pandas,columns
From: https://www.cnblogs.com/tian777/p/17673037.html

相关文章

  • Windows修改电脑DNS
    访问浏览器出现无法访问此页面,找不到DNS地址,则可以通过如下方式修改DNS按下windows键+R键(两个键一起按)出现下面窗口输入control按回车键(Enter键)就会出现下面的窗口DNS可以填下面这些:114.114.114.114和114.114.115.115阿里DNS:223.5.5.5和223.6.6.6腾讯DNS:11......
  • oracle 创建、查看、修改、删除、赋权directory目录
    如下:directory用于数据泵导入、导出创建的目录。1、查询directory目录select*fromdba_directories;2、创建或者修改directory目录createorreplacedirectory目录名称as'/存放目录路径'3、赋权directory目录grantread,writeondirectory目录名称t......
  • Linux修改挂载的移动硬盘目录权限失败问题原因(chown,chmod不起效)
    场景:移动硬盘插到刷Linux系统的机顶盒上当作共享存储,开webdav需要将文件改为普通用户所有和data-www组原因:移动硬盘是Windows系统的ntfs格式,它的权限只能在挂载时进行指定,而无法使用Linux命令修改,如果有精细权限控制最好还是转为Linux的分区格式解决方法:修改/etc/f......
  • 《落实算法安全主体责任基本情况》范文,修改主体即可提交
      在数字化时代,算法已经成为了商业竞争和创新的关键要素。然而,算法的广泛应用也引发了对其安全性和合规性的关切。《落实算法安全主体责任基本情况》作为算法备案过程中的一环,具有极高的专业性,需要企业全面考虑算法的隐私保护、数据合规、风险预防等一系列关键问题。正因如......
  • mysql字符集批量修改
    修改所有数据库字符集SELECTCONCAT('ALTERDATABASE',SCHEMA_NAME,'CHARACTERSETutf8mb4COLLATEutf8mb4_bin;')as'Fanrncho'FROMinformation_schema.`SCHEMATA`WHEREDEFAULT_CHARACTER_SET_NAMERLIKE'utf8mb4'ANDSCHEMA_NAME......
  • 视频融合平台EasyCVR要求新用户首次登录强制修改密码
    EasyCVR平台是一个具有强大可拓展性的安防视频监控和视频集中存储解决方案。它支持云存储和磁盘阵列,能够快速、灵活地进行部署。EasyCVR平台支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,同时也支持厂家私有协议和SDK接入,如海康Ehome、海大宇等设备的SDK。该平台不仅具......
  • 工单组件修改
    近期OP项目中客户有一个外围流程从外围系统发起,设计工单创建,修改,组件增删改,结合网上相关例子整合在一起相关FM/BAPI:BAPI_PRODODR_CREATE工单创建BAPI_NETWORK_COMP_GETDETAIL工单组件信息获取BAPI_NETWORK_COMP_CHANGE工单组件信息更改BAPI_NETWORK_COMP_CHANGE工单组件......
  • pandas操作excel表格
    点击查看代码importpandasaspdfromtqdmimporttqdmfile1=r"files/1.xls"file2=r"files/2.xls"df_File1=pd.read_excel(file1,sheet_name='keyWord',keep_default_na=False)key_column=df_File1['key'].fillna('......
  • HTML中行内样式的修改
    遇到的问题:具体的HTML代码:解决办法,在前端页面中修改样式<style>.layui-table-main{height:100%!important;}</style>该问题中style样式是行内样式,所以在修改代码时记得加上important来增加权重。......
  • sqlserver 循环 + 递归 修改 末节点 标识
    DECLARE@cntINT=0;WHILE@cnt<27BEGINSET@cnt=@cnt+1;PRINT@cnt;withtemp(id,[Name],ParentCategriesID)as(selectid,[Name],ParentCategriesIDfromCategorieswhereid=27unionallselecta.id,a.[Name],a.ParentCategriesI......