(新手)使用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 ...
随机推荐
- 【Java】在eclipse中使用gradle进行项目构建 入门篇
##Gradle的安装与配置- Gradle 是以 Groovy 语言为基础,面向Java应用为主,基于DSL(领域特定语言)语法的自动化构建工具. 系统环境变量中添加gradle 前往官网下载Com ...
- blog 题解目录
洛谷: 1.P2430 严酷的训练 2.CF784E Twisted Circuit 3.P1886 滑动窗口 4.P1090 合并果子 5.P1119 灾后重建 6.P1690 贪婪的Copy 7. ...
- Vue.js(2.x)之列表渲染(v-for/key)
1.v-for是Vue里的循环语句,与其他语言的循环大同小异.首先得有需要循环且不为空的数组,循环的关键字为in或of. 需要索引时的写法: v-for里的in可以使用of代替: 还可以使用v-for ...
- 功放TAS5719耳机POP noise分析 对策
驱动功放时,遇到POP noise 是常见的问题,以前遇到此问题,首先想到的对策就是mute the output.本人一直来对此种解法感觉不爽,心里不快.最近遇到开机时耳机有很强的POP,决定好好研 ...
- C#Udp组播
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...
- silverlight数据绑定模式TwoWay,OneWay,OneTime的研究
asp.net开发中,数据绑定是一个很简单的概念,控件与数据绑定后,控件可以自动把数据按一定的形式显示出来.(当然控件上的值改变后,可以通过提交页面表单,同时后台服务端代码接收新值更新数据) silv ...
- 【extjs6学习笔记】0.4 准备: 书籍与文档
Ext JS 6 By Example Ext JS Essentials Learning Ext JS - Fourth Edition Ext JS 6: Getting Started htt ...
- 绿盟网站安全防护服务(vWAF)
平台: linux 类型: 虚拟机镜像 软件包: basic software devops nsfocus security waf 服务优惠价: 按服务商许可协议 云服务器费用:查看费用 立即部署 ...
- http请求各种数据的接受
一.接受请求的http数据 1.接受客户请求的数据,例如xml数据格式,代码如下: 此代码相当于服务端 public String analyzeWeixinXMLStr(HttpServletReq ...
- 关于调用百度地图api在自己写的网页中实现和解决在https中正常显示
百度地图开发者:http://lbsyun.baidu.com/index.php?title=jspopular 我们打开百度地图开发者网站,注册一个百度账号,然后打开控制台,开始创建应用:(如果你 ...