Python 用pandas处理csv,dataframe,groupby等
这两天用Python写了个小程序,原理实现部分不难,但是对python语言不熟,过程遇到挺多困难的。而且最后发现评估原则有些没用实现到的。考虑到时间宝贵,就以后再做吧。
代码就不贴了,把一些问题解决方案记录一下:
1.读取csv。注意编码,header指定了表头位置,如果前几行是空行是不用算进来的。比如我的表里表头在第7行,但其实表头前面只有2行是有内容的。
import pandas as pddf=pd.read_csv(file_name,encoding='utf-8',header=2)
这样读出来的类型可能都是object,不利于后续比较计算,可以采用以下方法:
frame[CMAX]=frame[CMAX].astype(int)
frame[WUR]=frame[WUR].astype(float)print(frame.dtypes)#检查frame每列的类型
2.根据列名新建一个行数更少的dataframe。
frame=DataFrame(df,columns=[CellName,ENB,CMAX,WUR])
3.删除/选取某行含有特定数值的列。
rows=[x for i,x in enumerate(frame.index) if frame.iat[i,3]=='NIL' or pd.isnull(frame.iat[i,3])]
#利用enumerate对frame进行遍历,将无线利用率为'NIL'或为空的列放入rows中frame=frame.drop(rows,axis=0) #利用drop方法将含有特定数值的行删除
4.使用groupby聚合CMAX列最大最小值、WUR列最大最小值。
ResultA=frame.groupby([ENB]).agg({CMAX:['max','min'],WUR:['max','min']})
5.增加列。初始化整列都赋同个值。
ResultA['physicCell']='1'
ResultA['freqsameCell']=0
6.获取dataframe的大小。
ResultA.shape#行和列(1200,4)ResultA.shape[0]#行1200ResultA.shape[0]#列4
7.基础操作:数据选取loc、iloc、ix函数
loc函数主要通过行标签索引行数据,划重点,标签!标签!标签!
ResultA.loc[index,'freqsameCell']=1
如果用loc['a']意味着行标签是'a',选取这一行,不能是列标签。
df.loc[df['age']>30,['name','age']]#可以同时对行列进行筛选
iloc 主要是通过行号获取行数据,划重点,序号!序号!序号!
iloc[0:1],由于Python默认是前闭后开,所以,这个选择的只有第一行!
ix——结合前两种的混合索引,即可以是行序号,也可以是行标签。
at:选列是只能是列名,不能是position,获取某个数值的具体位置。
iat:通过标签获取某个数值的具体位置。
df[]只能进行行选择,或列选择,不能同时进行列选择,列选择只能是列名。
8.用iterrows遍历dataframe中的行列标签。
for index,row in ResultA.iterrows():Smax=int(row[(CMAX,'max')])Smin=int(row[(CMAX,'min')])Wmax=float(row[(WUR,'max')])Wmin = float(row[(WUR, 'min')])if Smax>=150 and Smin<250:ResultA.loc[index,'freqsameCell']=1countA=countA+1#print(index)elif Smax>=150 and Smin<250 and tmp>=1.5 and tmp<2 and Wmax>80 and Wmin<50 and Wmax-Wmin>=30:tmp = Smax / SminResultA.loc[index,'freqsameCell']=1countA=countA+1
9.保存csv。如果encoding是utf-8可用.to_csv(filename,encoding='utf-8_sig')方法:
ResultB.loc[ResultB['freqdifferCell']==1].to_csv('频间不均衡扇区.csv', encoding='utf-8_sig')
Python 用pandas处理csv,dataframe,groupby等相关推荐
- Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write)
Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write) 目录
- Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表)
Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表) 目录 将dataframe数据写入到xls表格的多个sheet内(防止写入数 ...
- Python之pandas:对dataframe数据的索引简介、应用大全(输出索引/重命名索引列/字段去重/设置复合索引/根据列名获取对应索引)、指定某字段为索引列等详细攻略
Python之pandas:对dataframe数据的输出索引.重命名索引列/字段去重/设置复合索引/根据列名获取对应索引.指定某字段为索引列等详细攻略 目录 对pandas中dataframe数据中 ...
- 用python的pandas打开csv文件_使用CSV模块和Pandas在Python中读取和写入CSV文件
什么是CSV文件? CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据.CSV是一种紧凑,简单且通用的数据交换通用格式.许多在线服务允许其用户将网站中的表格数据导出到CSV文件中.CSV文件将 ...
- 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)
python中数据处理是比较方便的,经常用的就是读写文件,提取数据等,本博客主要介绍其中的一些用法.Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用 ...
- Python 用pandas写入csv文件举例
用pandas写入csv文件举例 import pandas as pd import numpy as nppd.set_option('display.unicode.ambiguous_as_w ...
- pandas python csv_python:pandas合并csv文件的方法(图书数据集成)
数据集成:将不同表的数据通过主键进行连接起来,方便对数据进行整体的分析. 两张表:ReaderInformation.csv,ReaderRentRecode.csv ReaderInformatio ...
- Python使用pandas扩展库DataFrame对象的pivot方法对数据进行透视转换
Python扩展库pandas的DataFrame对象的pivot()方法可以对数据进行行列互换,或者进行透视转换,在有些场合下分析数据时非常方便. DataFrame对象的pivot()方法可以接收 ...
- 【Python学习系列十二】Python库pandas之CSV导入
Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高 ...
最新文章
- 【机器学习基石笔记】八、噪声和错误
- 作为零基础如何自学软件测试?
- 一次linux服务器load高达600多的异常处理过程
- 什么是用户智能,它与数据有什么关系?
- java unexpected type_意外类型需要变量找到值(Unexpected type required variable found value)...
- Windows消息机制概述
- Pandas——Series与DataFrame
- SQLServer的本月统计和本周统计
- 《吃透微服务》—服务网关之Gateway
- 思科路由器Ez***测试
- matlab语言的特点,Matlab语言的特点
- C语言连接Oracle数据库
- robo 3t使用教程
- import itchat ModuleNotFoundError: No module named 'itchat'
- 如何设置excel为0的单元格内容为不显示
- 【Java 后端接收前端的富文本数据,其中标签样式数据丢失解决】
- ThinkPHP 5.0 rewrite规则
- javascript制作gif动图----gif.js
- uva 10057 - A mid-summer night's dream.
- (七)python网络爬虫(理论+实战)——json数据解析
热门文章
- 工程文件应采用计算机管理 实行,工程资料管理措施
- 京东20周年答题活动
- 排列(全排,前一个,下一个)
- 使用 Python 自定义 APISIX 插件
- 浙江数字贸易交易会筹备期间,马云联合国分享数字经济浙江经验
- I3D (inflated 3D)是什么?
- Alwayson无域安装测试
- YUY数据转换为RGB数据,并进行灰度化处理显示
- error C4996 ‘pugixml_documentload‘ 被声明为已否决的解决方法
- Vue项目 .env .env.development .env.production 配置说明