(新手)使用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 ...
随机推荐
- jquery选择器大全参考
在Dom 编程中我们只能使用有限的函数根据id 或者TagName 获取Dom 对象. 然而在jQuery 中则完全不同,jQuery 提供了异常强大的选择器用来帮助我们获取页面上的对象, 并且将对象 ...
- 使用HTML5 canvas做地图(1)基础知识
之前一直想使用HTML5技术全新做一套地图API,可是苦于时间和精力,迟迟未有行动.后来下定决心,利用下班和周末做出一个大体框架出来,现在和网友分享一下自己的整体的一个思路和想法.欢迎大家提出宝贵建议 ...
- MySQL-数据类型及选择
一.数据类型 详见:http://www.runoob.com/mysql/mysql-data-types.html 二.类型选择 整形>date,time>enum,char>v ...
- centos6.2安装内核
http://vault.centos.org/6.2/updates/Source/SPackages/ yum install rpm-build redhat-rpm-config unifde ...
- jsop解析获得htmldome
package com.open1111.jsoup; import org.apache.http.HttpEntity;import org.apache.http.client.methods. ...
- 详细讲解:tp3.2.3生成验证码并进行验证(ajax校验返回及自定义返回)
TP3.2.3的验证码也是比较经典的小功能,框架对这个小功能的封装还是比较完美的,废话不多说,开始记录 1.总体效果: (1)初始界面 (2)自定义的返回校验效果: (3)ajax的校验返回: 2.代 ...
- IP地址与数字地址相互转换
/// <summary> /// IP地址转换成数字 /// </summary> /// <param name="addr">IP地址&l ...
- java Vamei快速教程01
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念. ...
- CRM User Status profile中Business Transaction字段的用途
有朋友问到User Status profile中Business Transaction字段的用途,如下图INPR, FINI所示. 实际上,这个字段作为一个桥梁,连接了User Status和Sy ...
- php之cURL惯用
1.php cURL的强大:PHP 支持 Daniel Stenberg 创建的 libcurl 库,能够连接通讯各种服务器.使用各种协议.libcurl 目前支持的协议有 http.https.ft ...