@利用python将excel中的大量分组竖行数据转为横行数据
话不多说,直接上示意图:
想到这个问题也是今天工作所带来的的问题,网上爬虫下来的数据就是这种图片中左边的情况,也许是自己的爬虫技术不够到家,但是任务是转变成右边的数据模式,那只能硬着头皮做了。对于示意图这样很少的数据我想直接复制并进行选择性粘贴就行了,那如果是上万,十几万这类数据那又该怎么办呢、
于是我百度了一下,没有找到自己满意的答案。想到了自己学了点python数据的简单处理,就有了一个思路,思路是这样的:发现A列C列是有规则有序循环的重复项,那我们可以先写在第一行,那B列的数据也是4个为一组循坏对应的,那我们可以利用python获取B列的所有数据,在对进行数据分组,写入其他表格,最后这个复制粘贴就OK了。
读取样本1数据:
首先要安装pandas库:pip install pandas
读取表格写入数据代码
// An highlighted block
import io
import sys
import pandas as pd#导入pandas库
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8')
df = pd.read_excel("样本1.xlsx", usecols=[1],
names=None) # 读取项目名称,第2列,不要列名
df_li = df.values.tolist()
results = []
for s_li in df_li:
results.append(s_li[0])#遍历第2列每一行的数据放入results
fz_results = [results[i:i+4] for i in range(0,12,4)]
#将results列表4个为一组成的列表,很多数据就改成range(01,len(results),n)
#再次遍历fz_results中新列表
for td in fz_results:
td1 = [str(i) for i in td]
td2 = ' '.join(td1)#列表和字符串之间的转换
#print(td2)
with open('样本.csv','a+') as f:
f.write(td2 + '\n')#最后创建csv文件并写入数据
print("完成");
这里我用的是WPS软件打开写入的文件,如图:
能力有限,可以用execl自带的分列完成操作:
好了,最后进行快乐的复制粘贴就行,成品如图:
然后最后处理成千上万这种类型的数据也不失为一个办法,新人小白,自己一些想法分享给大家。
第一次发博客,有点紧张,如哪里处理不好的多多包涵,一起交流学习,谢谢观看!