本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
python实现Excel多行多列的转换的示例
sz199511 · 112浏览 · 发布于2023-03-13 +关注

本文主要介绍了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来解决。


相关推荐

PHP实现部分字符隐藏

沙雕mars · 1322浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 906浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 966浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 960浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1084浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
不积跬步无以至千里,不积小流无以成江海!
分类专栏
小鸟云服务器
扫码进入手机网页