将xls文档的矩阵批量转为面板数据 txt文档 python代码

这篇博客介绍了一种方法,将一个文件夹中包含的Excel矩阵数据转换为TXT面板数据。首先读取指定文件夹中的Excel文件,然后通过读取每一列和每一行的值,结合年份和地点信息,生成TXT文件。每行数据由地点、年份和数值组成,最终结果存储在与原始Excel文件相同的文件夹中。虽然这个过程需要后期在Excel中进一步处理,但提供了快速转换的基础。
摘要由CSDN通过智能技术生成

当你获得了一些矩阵数据,并放在一个文件夹里,想将其转为面板数据,进行进一步计算,有什么快捷的方法呢?

假设有一个文件夹(存储路径为 “E:/数据/地方财政收入/” ),全部存放的都是矩阵数据,如下面两个图所示:

在这里插入图片描述

excel文件(.xls)的矩阵类似于这样:
在这里插入图片描述

只需要修改矩阵数据的存储位置(path=“E:/数据/地方财政收入/” )

然后,运行该文档,就可以在同一个文件夹中生成文本文件(.txt)

在这里插入图片描述
当然,这是个初步的代码,还需要将txt结果复制到excel中,进行分列、去重等处理,后续会继续优化^ ^
话不多说,上代码

import xlrd
import xlwt
import os
import pandas as pd


#【只需修改 待读取的文件夹】
path="E:/数据/地方财政收入/" 

path_list=os.listdir(path)


 #【总行数】
def max_row(file_name):
    dataframe = pd.read_excel(file_name)
    max_row = len(dataframe)+1
    return max_row


 #【总列数】
def max_column(file_name):
    dataframe = pd.read_excel(file_name)
    max_column = len(dataframe.columns)
    return max_column


def pri(x,y):
    row1=table.row_values(x)
    print(y,row1)


def write_txt(filename,to_write):
    with open(filename, 'a') as file_object:
        file_object.write(to_write)


if __name__=='__main__':
    for i in path_list:
        file_name_r= path +i
        data = xlrd.open_workbook(file_name_r)#打开excel文件,注意要写全路径
        table = data.sheets()[0] #通过索引顺序获取
        row_num = 0 #写的起始列
        m=1 #读写的起始列
        c = max_column(file_name_r)
        r = max_row(file_name_r)
        while m < c: #【总列数】
            year= table.cell_value(0,m)
            n = 0 #读的起始行
            while n <  r: #【总行数】
                place = table.cell_value(n,0)
                content = table.cell_value(n,m)
                to_write = str(place)+' '+str(year)+' '+str(content)+'\n'
                file_name_w = path + i[0:-4] + '.txt'
                write_txt(file_name_w,to_write) #写入TXT文档
                n +=1
            m +=1

最后,致敬一直以来在网上分享的各位大神!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值