首页 > 编程语言 >Python之pandas表格处理常用方法

Python之pandas表格处理常用方法

时间:2024-09-05 12:21:36浏览次数:12  
标签:index 表格 Python True inplace 索引 data pandas

0.导入导出操作

下面以excel为例,csv同理,

只要把read_excel改成read_csv,把to_excel改成to_csv即可。

0.1导入excel/csv表格

data=pd.read_excel("附件.xlsx",sheet_name="表单2",index_col=0)

 pd.read_excel(io,sheet_name,index_col)

常用参数解读:

  • io:文件地址
  • sheet_name:表单名称,不填则默认导入第一个表单
  • index_col=0:系统不自动产生新的索引,即利用原来表格的第一列作为索引
                        不填,则自动添加索引(0,1,2,3……)

0.2导出excel/csv表格

data.to_excel("附件1.xlsx",index=True)

 df.to_excel(io,,sheet_name,index)

常用参数解读:

  • df:表格
  • io:文件地址
  • sheet_name:表单名称,不填则默认导出至第一个表单
  • index:True(默认),利用df的索引作为生成excel表格的索引
                False,不利用df的索引作为生成excel表格的索引,即无索引

1.表格索引

1.1获得表格索引和列名

print("表格的列名:",data.columns)
print("表格的索引名:",data.index)

1.2更改非索引列的列名

data.columns=['A','B','C','D','E','F','G','H','I','J','K','L','M','N']

df.columns=[ ] 

在方括号内填新的列名

1.3更改索引列的名称

data.index.rename("变量名",inplace=True)

 df.index.rename("索引列的新名称",inplace=True)

 

2.创建表格

df=pd.DataFrame(np.random.randn(24,4),index=list(range(0,24)),columns=list('ABCD'))

 df=pd.DataFrame(data,index,columns)

常用参数解读:

  •  df:所创建的表格名称
  • data:数据。无,则生成空表格
  • index:索引名
  • columns:列名

 

3.删除指定的列/行/缺失值

3.1删除指定的列

data.drop(["A"],axis=1,inplace=True)  # 删除列,inplace=True不生成新表格

3.2删除指定的行

data.drop(["15"],axis=0,inplace=True)

3.3删除缺失值,不改变行索引

data.dropna(inplace=True) # 删除缺失值,但不会自动改变行索引

 df.dropna(inplace=True)

常用参数解读:

  • inplace=True:不生成新表格

3.4删除缺失值,改变行索引 

data.dropna(inplace=True)   # 删除缺失值
data.dropna().reset_index(drop=True)  # 改变行索引

4.填充缺失值

data.fillna(0,inplace=True)  # 把缺失值填充为0

df.fillna(value,inplace=True)

常用参数解读:

  • value:把缺失值填充为value
  • inplace=True:不生成新表格

5.数据替换 

data.replace(0,0.04,inplace=True) # 把原来表格中的0替换成0.04

data.replace(被替换的数据,替换成的数据,inplace=True)

 

6.两个表格融合

data_1 = pd.read_excel('附件1.xlsx')
data_2 = pd.read_excel('附件2.xlsx')

result = pd.merge(data_2, data_1, on=['单品编码'], how='left') # on的列 用于标识每行数据;how='left':左连接

# 查看结果
print(result)

 df3=pd.merge(left, right, on, how)

常用参数解读:

7.表格合并

data1= pd.concat([data.sum(),data.mean(),data_date.max()], axis=1)
print(data1)

8.表格透视


data_date_item=data1.pivot_table(index="销售日期",   # 行索引名
                                columns="单品名称",  # 列名
                                values="销量(千克)", # 表格中的内容
                                 aggfunc="sum")     # 聚合方式

df2=df1.pivot_table(index,columns , values, aggfunc)

常用参数解读:

9.转置

data=data.T

10.遍历整个表格

for idx in data.index:
    for col in data.columns:
        # 以上两行就可以遍历整个表格
        if data.loc[idx,col]==0:
            data.loc[idx, col] =0.04  # 把0替换为0.04

关键句

for idx in data.index:

        for col in data.columns:

11.获取表格统计信息

data=pd.read_excel("附件.xlsx",index_col=0)# "index_col=0" 若加上这句,系统不会自动加上新的行索引,而是使用原有的第一列作为行索引

# python自带的统计描述
print("python自带的统计描述",data.describe())

# 一般更多需要"平均值","标准差","最小值","最大值","偏度","峰度",下面求这6个值并制作成表格
arr=np.array(data.describe().iloc[[1,2,3,-1],:])
arr=np.vstack([arr,data.skew()])
arr=np.vstack([arr,data.kurt()])
data_describe=pd.DataFrame(arr,index=["平均值","标准差","最小值","最大值","偏度","峰度"],columns=data_date_class.kurt().index)
print("统计描述:\n",data_describe)

 

12.按指定列的值进行排序

# 按指定列的值排序
data.sort_values(by="B",inplace=True)

13.重采样resample() 

data2=data1.resample('3M').sum()

要求:索引必须是时间 

常用参数解读:

  • '3M'表示按每3个月进行采样,还可以换成:'M'表示按每1个月进行采样,'D'表示按每1天进行采样
  • sum()是填充方法,即求和后填充,还可以换成:last()即最后一个数据作为填充,,ffill(),bfill()等

详见:python中Pandas的简单实例应用/resample函数/pivot_table函数/时间序列/使用数据透视和重采样从股指成分股进出记录得到月频的股指成分股数据_resample函数python-CSDN博客

标签:index,表格,Python,True,inplace,索引,data,pandas
From: https://blog.csdn.net/Yhw20040823/article/details/141924470

相关文章

  • python 用于接口测试测试,举例
    使用Python进行接口测试是一个常见的做法,通常使用`requests`库来发送HTTP请求,并使用`unittest`或`pytest`等框架来组织和运行测试。以下是一个简单的示例,展示如何使用Python进行接口测试。###示例场景假设我们有一个简单的RESTfulAPI,提供用户信息的CRUD操作。......
  • 都说学【python】,那么python到底是什么呢?
    发展现如今,作为一个ICT从业者,如果你没听说过Python,那就太out了。python作为现在最热门的程序语言,拥有超高的人气,可以说是IT界的新一代明星。尤其Python和目前红得发紫的人工智能之间密切的关系,使得大家都对它投入了特别的关注。今天,小编就和大家聊一聊,到底什么是Python。......
  • Python——求一个整数的阶乘是多少?
    没注释的源代码factorial=1number=int(input("请输入你计算阶乘的数字:"))ifnumber<0:  print("{}!没有阶乘".format(number))elifnumber==0:  print("{}!等于1".format(number))else:  foriinrange(1,number+1):    factorial......
  • python代码商城的返佣和退款问题
    使用Python来开发一个返佣接口,根据描述,接口需要处理三个核心功能:根据售价或租金计算返佣金额(20%)。不同人数分享返佣规则:一人分享返佣20%,二人分享每人分别返佣10%。在用户收到货物一周后,并且没有发生退款的情况下,进行结算返佣。步骤创建Flask应用:使用Flask框架来开发接口......
  • 用SpringBoot API实现识别pdf文件是否含有表格
    要使用SpringBootAPI实现一个识别PDF文件是否含有表格的功能,你可以结合PDF解析库(如ApachePDFBox)来解析PDF文件内容,并通过分析文本或线条来判断PDF是否包含表格。然后使用SpringBoot提供的RESTAPI来实现上传和检测功能。目录实现步骤1.配置pom.xml2.......
  • C++和Python混合编程——C++调用Python入门
    大纲代码结构初始化Python解释器获取GIL为什么需要GIL?GIL的影响导入Python模块并执行代码释放GIL终止Python解释器完整代码编译执行结果项目地址在《C++和Python混合编程——Python调用C++入门》一文中,我们熟悉了Python调用C++编译的动态库的方法。但是作......
  • [开题报告]flask框架沧州交通学院二手交易系统2ht5t(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在沧州交通学院这一充满活力的学术社区中,随着学生人数的增加和校园生活的日益丰富,二手物品的流通与交易成为了广大师生普遍关注的话题。传......
  • [开题报告]flask框架的安心养老一站通服务系统的设计与实现c3af4(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球人口老龄化的加速,养老问题已成为社会关注的焦点。传统的养老模式已难以满足日益增长的多元化养老需求,特别是在健康监测、生活照料......
  • python 源文件 源目录 转 包
    pythonsetup.pysdist 命令会完成以下步骤:准备源码:将源文件(包括Python文件、数据文件等)收集到一个目录中,以便打包。生成分发文件:创建一个压缩包(通常是 .tar.gz 或 .zip 格式),包含所有必要的源文件和元数据。这些文件会被放置在 dist 目录中。构建步骤:sdist......
  • python 带参数的装饰器
    fromfunctoolsimportwrapsdeflogit(logfile='out.log'):deflogging_decorator(func):@wraps(func)defwrapped_function(*args,**kwargs):log_string=func.__name__+"wascalled"print(l......