python|excel分列--部分分列(pandas,concat)
2022/1/26 17:08:55
本文主要是介绍python|excel分列--部分分列(pandas,concat),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
一、问题
二、代码
三、步骤总结
一、问题
虽然excel里分列很简单但是要批量操作的话还是有点烦的。
在CSDN上找到很多使用pandas的分列教程,但是我想要达成的效果是:
原始数据共三列,第一列是我希望分列的,后面两列不想分,如何一起输出?
注:数据仅为示例并非真实数据
该表为各街道建设用地批而未供数据控规类型,希望得到的格式是:
第一列--街道
第二列--年份
第三列--类型
第四列--数量
第五列--面积
二、代码
这里我使用了easygui进行原数据输入
# 输入原始数据 msg = '输入' title = '选择输入的excel文件' filename = '*' filetypes = ["*.xls"] fileinpath = easygui.fileopenbox(msg, title, filename, filetypes) df = pd.read_excel(fileinpath) # 分列 df = pd.DataFrame((x.split('_') for x in df['tj']), columns=['Jiedao', 'Data', 'Feature']) # 读取原始表格后面的2列 cols = [1, 2] df2 = pd.read_excel(fileinpath, usecols=cols) df2.head() df2 = pd.DataFrame(df2, columns=['Cnt_tj', 'Sum_AREA']) # 合并,这里result是分列后得到的五列数据 result = pd.concat([df, df2], axis=1)
concat可以对两个数据框合并,axis参数是合并的方向。我这里相当于是两个数据框左右合并,就是1.如果是两部分希望上下合并的话参数设置为0.
输出excel
# 写出分列后的表格 msg = '分列后表格输出' title = '' filename = '*.xls' filetypes = ["*.xls"] fileoutpath1 = easygui.filesavebox(msg, title, filename, filetypes) result.to_excel(fileoutpath1, index=False)
三、步骤总结
实现功能其实很简单,分为以下几步:
1、pandas读取原始数据,将需要分列的那一列在Dataframe里用split分列
2、读取原数据无需分列的部分
3、concat函数合并
4、pandas输出 to_excel
这篇关于python|excel分列--部分分列(pandas,concat)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python