python实现Excel多行多列的转换的示例

 更新时间:2023年03月13日 09:52:32   作者:GISer_小汪汪  
本文主要介绍了python实现Excel多行多列的转换的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

使用pandas对Excel的多行和多列进行转换

提示:以下是本篇文章正文内容,下面案例可供参考

一、使用需求

将上表中的多行多列数据转换成下表中的三列多行数据,需要做的就是将同一日期不同坐标的值汇总到一列数据。核心思想就是新建一列然后把原来的一行多列数据汇总成一列多行数据。不同日期的值汇总到一起,即完成多行多列的转换。

二、使用步骤

1.引入库

import pandas as pd

2.读入数据

df = pd.read_excel('源数据.xlsx')

3.将需要合并的列的列名先放在列表中

merge_list = list(df.loc[:, '75.951142 39.473421':].columns)#这里是坐标,是日期右边的列名,可以根据自己的表格改。

4.填充空值为0

df.loc[:, '75.951142 39.473421':] = df.loc[:, '75.951142 39.473421':].fillna(0)

5.添加新列,把待合并的所有列变成一个大字符串(传入函数处理)

# 定义函数来处理合并操作
def merge_values(s):
    # 每2列进行合并分隔符为|,2列与2列合并分割符为#,即 监测值和坐标
    result = []
    for idx in range(0, len(s.values), 2):  # len(s.values)即df.loc[:,'学科':]的每一行的长度 ,第三个字段2为步长2即2个合并
        result.append(f'{s[idx]}|{merge_list[idx]}')  # 生成一个列表,格式为数值和坐标,这里merge_list[idx]是后面添加的坐标列
    return '#'.join(result)  # 将列表用#号分割返回一个大字符串 格式为:检测值和坐标
# 添加新列,把待合并的所有列变成一个大字符串(传入函数处理)
df['merge'] = df.loc[:, '75.951142 39.473421':].apply(merge_values, axis=1)

6.删除合并之前的列,保存id,name,merge列

df.drop(merge_list,axis=1,inplace=True)

7. 使用explode来变成多列

df['75.951142 39.473421'] = df['merge'].str.split('|').str[0]df['坐标'] = df['merge'].str.split('|').str[1]#这里添加新的坐标列df.drop(['merge'],axis=1,inplace=True)df['75.951142 39.473421'] = df['merge'].str.split('|').str[0]
df['坐标'] = df['merge'].str.split('|').str[1]#这里添加新的坐标列
df.drop(['merge'],axis=1,inplace=True)

8.存储到本地生成新的csv文件

df.to_excel('转换后数据.xlsx', index=False)

总结

以上就是今天要讲的内容,本文仅仅简单介绍了多行多列数据之间的转换的一个小案例,主要是利用pandas来解决。

到此这篇关于python实现Excel多行多列的转换的示例的文章就介绍到这了,更多相关python Excel多行多列转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python设置环境变量的作用整理

    python设置环境变量的作用整理

    在本篇文章里小编给大家整理的是关于python设置环境变量的作用整理内容,需要的朋友们可以学习参考下。
    2020-02-02
  • anaconda中Conda创建虚拟环境的实现步骤

    anaconda中Conda创建虚拟环境的实现步骤

    在Anaconda中,可以使用conda命令来创建和管理虚拟环境,本文主要介绍了anaconda中Conda创建虚拟环境的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • python使用selenium爬虫知乎的方法示例

    python使用selenium爬虫知乎的方法示例

    这篇文章主要介绍了python使用selenium爬虫知乎的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 用Python的SimPy库简化复杂的编程模型的介绍

    用Python的SimPy库简化复杂的编程模型的介绍

    这篇文章主要介绍了用Python的SimPy库简化复杂的编程模型的介绍,本文来自于官方的开发者技术文档,需要的朋友可以参考下
    2015-04-04
  • 利用Python中SocketServer 实现客户端与服务器间非阻塞通信

    利用Python中SocketServer 实现客户端与服务器间非阻塞通信

    本文主要介绍了利用Python中SocketServer 实现客户端与服务器间非阻塞通信示例代码,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • python try 异常处理(史上最全)

    python try 异常处理(史上最全)

    为了处理异常,我们使用try...except,这篇文章主要介绍了python try 异常处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Pandas中运行速度优化的常用方法介绍

    Pandas中运行速度优化的常用方法介绍

    这篇文章主要为大家详细介绍了几种pandas中常用到的方法,对于这些方法使用存在哪些需要注意的问题,以及如何对它们进行速度提升,需要的小伙伴可以参考下
    2025-03-03
  • Python自动发送和收取邮件的方法

    Python自动发送和收取邮件的方法

    这篇文章主要介绍了Python自动发送和收取邮件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python3自动安装第三方库,跟pip说再见

    Python3自动安装第三方库,跟pip说再见

    很多朋友私信小编Python安装第三方库安装技巧,在这就不一一回复大家了,今天小编给大家分享一篇教程关于Python自动安装第三方库的小技巧,本文以安装plotly为例给大家详细讲解,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • python使用json序列化datetime类型实例解析

    python使用json序列化datetime类型实例解析

    这篇文章主要介绍了python使用json序列化datetime类型实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论