(新手)使用pandas操作EXCEL
import pandas as pd
import numpy as np
from pandas import DataFrame,Series
#path = r'C:\Users\tsl\Desktop\数据.xlsx'
#一列数据前面添加字符串
def add_C(village_data):
village_data['电话'] = ['C%s' % y for y in village_data['电话']]
return village_data['电话']
#读取excel
data = pd.read_excel(r'C:\Users\tsl\Desktop\数据.xlsx')
#判定某列中是否有null,如果有删除null 行
if data['电话'].isnull().any():
#将excel里面空值修改
data['电话'] = data['电话'].fillna('999')
#得到999值的索引室号
data_index = data[data.电话=='999'].index.tolist()
#删除
data = data.drop(data_index)
#以街道分组
group_by_name = data.groupby('街道')
#需要groups得出具体结果
for i in group_by_name.groups:
village_data = data.loc[data['街道'] == i ]
add_C(village_data)
#以楼栋分组
group_by_name_build = village_data.groupby('楼栋')
for build_name in group_by_name_build.groups:
build_data = village_data.loc[village_data['楼栋'] == build_name]
build_data = build_data.drop_duplicates(subset='室号', keep='first')
#更改列的数据类型
build_data['室号'] = build_data['室号'].astype(np.str)
row_index = 0
for house_num in build_data['室号']:
if '-' in house_num:
house_num = house_num.replace('-','9') #并没有修改原内存地址的值,固需要赋值给原有内存地址
#选区某行某列并赋值
build_data.iat[row_index,2] = house_num
row_index +=1
del build_data['街道']
del build_data['楼栋']
#修改列名
build_data.columns = ['用户编码','指定开门','电话号码']
build_data['指定开门'] = '双门'
build_data_row_index = 0
for modify_num in build_data['用户编码']:
if len(modify_num) < 4:
modify_num = '0' + modify_num #并没有修改原内存地址的值,固需要赋值给原有内存地址
build_data.iat[build_data_row_index,0] = modify_num
build_data_row_index +=1
#保存/生成新的excle
DataFrame(build_data).to_excel('C:\\Users\\tsl\Desktop\info\%s.xls' % (build_name),sheet_name='Sheet1',index=False,header=True ) ##优化后
import pandas as pd
import numpy as np
from pandas import DataFrame,Series
#读取excel
#path = r'C:\Users\tsl\Desktop\数据.xlsx'
def Build_data(build_data):
#一个有索引和行内容的迭代器
for data_line_index,data_line in build_data.iterrows():
if '-' in data_line['用户编码']:
data_line['用户编码'] = data_line['用户编码'].replace('-','9')
# house_num = house
if len(data_line['用户编码'])<4:
data_line['用户编码'] = '0'+ data_line['用户编码']
data_line['电话号码'] = data_line['电话号码'][:-2]
return build_data
def add_C(village_data):
village_data['电话'] = ['C%s' % y for y in village_data['电话']]
return village_data['电话']
data = pd.read_excel(r'C:\Users\tsl\Desktop\数据.xlsx')
data_index = 0
#判定列中是否有null,如果有删除null 行
if data['电话'].isnull().any():
#将excel里面空值修改
data['电话'] = data['电话'].fillna('999')
#得到999值的索引室号
data_index_1 = data[data.电话=='999'].index.tolist()
#删除
data = data.drop(data_index_1)
#已街道分组
group_by_name = data.groupby('街道')
#需要groups得出具体结果
for i in group_by_name.groups:
village_data = data.loc[data['街道'] == i ]
add_C(village_data)
group_by_name_build = village_data.groupby('楼栋')
for build_name in group_by_name_build.groups:
build_data = village_data.loc[village_data['楼栋'] == build_name]
build_data = build_data.drop_duplicates(subset='室号', keep='first')
del build_data['街道']
del build_data['楼栋']
#修改列名
build_data.columns = ['用户编码','指定开门','电话号码']
build_data['指定开门'] = '双门'
build_data = build_data.astype(np.str)
build_data = Build_data(build_data)
DataFrame(build_data).to_excel('C:\\Users\\tsl\Desktop\info\%s.xls' % (build_name),sheet_name='Sheet1',index=False,header=True )
(新手)使用pandas操作EXCEL的更多相关文章
- Python Pandas操作Excel
Python Pandas操作Excel 前情提要 ☟ 本章使用的 Python3.6 Pandas==0.25.3 项目中需要用到excel的文件字段太多 考虑到后续字段命名的变动以及中文/英文/日 ...
- Python openpyxl、pandas操作Excel方法简介与具体实例
本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...
- Pandas操作excel
读取excel:Pandas库read_excel()参数详解 pandas.read_excel(io,sheet_name = 0,header = 0,names = None,index_co ...
- 【Python自动化Excel】pandas操作Excel的“分分合合”
话说Excel数据表,分久必合.合久必分.Excel数据表的"分"与"合"是日常办公中常见的操作.手动操作并不困难,但数据量大了之后,重复性操作往往会令人崩溃. ...
- pandas 操作 excel
1. 多重 sheet Using Pandas to pd.read_excel() for multiple worksheets of the same workbook pd.read_exc ...
- Python利用pandas处理Excel数据的应用
Python利用pandas处理Excel数据的应用 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做 ...
- 【python基础】利用pandas处理Excel数据
参考:https://www.cnblogs.com/liulinghua90/p/9935642.html 一.安装第三方库xlrd和pandas 1:pandas依赖处理Excel的xlrd模块, ...
- 用Python的pandas框架操作Excel文件中的数据教程
用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...
- pandas神器操作excel表格大全(数据分析数据预处理)
使用pandas库操作excel,csv表格操作大全 关注公众号"轻松学编程"了解更多,文末有公众号二维码,可以扫码关注哦. 前言 准备三份csv表格做演示: 成绩表.csv su ...
随机推荐
- MySQL中有关TIMESTAMP和DATETIME的对比
TIMESTAMP和DATETIME的相同点: 1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期. TIMESTAMP和DATETIME的不同点: 1 ...
- Soft skill
不要害怕让别人看到自己的无知 作为高级程序员的一个好处是,当别人问一些我不懂的问题时,我可以很淡然地告诉他们: 这个东西我也不懂,因为以前没有遇到过,不过我可以看一下,然后再告诉你. 当我还是一个初级 ...
- WebClient实现文件下载详解(二)
.Net2.0中新增了很多组件,WebClient就是其中一个,功能也很强大,今天拿WebClient做了一个小实验,只用到了一些很简单的功能就可以实现以前不好实现的功能,很方便. 简单介绍一下Web ...
- grunt + sass 使用记录
环境依赖 Nodejs for grunt Ruby for sass 配置文件 package.json { "name": "app", "ver ...
- iOS中UIWebview中网页宽度自适应的问题
有的网页中会使用"<meta name="viewport" content="width=device-width, initial-scale=1.0 ...
- 推荐一个VS2015 插件 Favorite Documents
随着解决方案越来越庞大,查找某个文件变的非常费神,考眼力 有了这个工具我们可以将常用的几个文件或文件夹添加到收藏夹中,随时展开双击即可到达收藏位置 从 视图>其他窗口中打开 安装 在Vi ...
- Redis安装配置及在Python上的应用
最近在使用Kazoo(开源电话系统) API时,一次请求的处理需要调用几次API,只为了得到一个name和id的对应关系,耗时非常大,开始想使用一种简单的实现,直接将对应关系保存到静态类的静态变量中, ...
- hdu-1875 畅通工程再续---MST
题目链接: https://vjudge.net/problem/HDU-1875 题目大意: 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小 ...
- iOS内存探秘
http://www.cocoachina.com/ios/20170216/18689.html iOS 内存机制特点 有限的可用内存 iPhone 设备的 RAM 一直非常紧缺,iPhone 一代 ...
- linux slab学习
https://blog.csdn.net/bullbat/article/details/7194794 https://blog.csdn.net/qq_26626709/article/deta ...