这两天用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等相关推荐

  1. Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write)

    Python使用pandas保存csv文件:如果文件存在则只添加内容(append),如果无表则同时写入表头和内容(write) 目录

  2. Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表)

    Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表) 目录 将dataframe数据写入到xls表格的多个sheet内(防止写入数 ...

  3. Python之pandas:对dataframe数据的索引简介、应用大全(输出索引/重命名索引列/字段去重/设置复合索引/根据列名获取对应索引)、指定某字段为索引列等详细攻略

    Python之pandas:对dataframe数据的输出索引.重命名索引列/字段去重/设置复合索引/根据列名获取对应索引.指定某字段为索引列等详细攻略 目录 对pandas中dataframe数据中 ...

  4. 用python的pandas打开csv文件_使用CSV模块和Pandas在Python中读取和写入CSV文件

    什么是CSV文件? CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据.CSV是一种紧凑,简单且通用的数据交换通用格式.许多在线服务允许其用户将网站中的表格数据导出到CSV文件中.CSV文件将 ...

  5. 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)

    python中数据处理是比较方便的,经常用的就是读写文件,提取数据等,本博客主要介绍其中的一些用法.Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用 ...

  6. Python 用pandas写入csv文件举例

    用pandas写入csv文件举例 import pandas as pd import numpy as nppd.set_option('display.unicode.ambiguous_as_w ...

  7. pandas python csv_python:pandas合并csv文件的方法(图书数据集成)

    数据集成:将不同表的数据通过主键进行连接起来,方便对数据进行整体的分析. 两张表:ReaderInformation.csv,ReaderRentRecode.csv ReaderInformatio ...

  8. Python使用pandas扩展库DataFrame对象的pivot方法对数据进行透视转换

    Python扩展库pandas的DataFrame对象的pivot()方法可以对数据进行行列互换,或者进行透视转换,在有些场合下分析数据时非常方便. DataFrame对象的pivot()方法可以接收 ...

  9. 【Python学习系列十二】Python库pandas之CSV导入

    Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高 ...

最新文章

  1. 【机器学习基石笔记】八、噪声和错误
  2. 作为零基础如何自学软件测试?
  3. 一次linux服务器load高达600多的异常处理过程
  4. 什么是用户智能,它与数据有什么关系?
  5. java unexpected type_意外类型需要变量找到值(Unexpected type required variable found value)...
  6. Windows消息机制概述
  7. Pandas——Series与DataFrame
  8. SQLServer的本月统计和本周统计
  9. 《吃透微服务》—服务网关之Gateway
  10. 思科路由器Ez***测试
  11. matlab语言的特点,Matlab语言的特点
  12. C语言连接Oracle数据库
  13. robo 3t使用教程
  14. import itchat ModuleNotFoundError: No module named 'itchat'
  15. 如何设置excel为0的单元格内容为不显示
  16. 【Java 后端接收前端的富文本数据,其中标签样式数据丢失解决】
  17. ThinkPHP 5.0 rewrite规则
  18. javascript制作gif动图----gif.js
  19. uva 10057 - A mid-summer night's dream.
  20. (七)python网络爬虫(理论+实战)——json数据解析

热门文章

  1. 工程文件应采用计算机管理 实行,工程资料管理措施
  2. 京东20周年答题活动
  3. 排列(全排,前一个,下一个)
  4. 使用 Python 自定义 APISIX 插件
  5. 浙江数字贸易交易会筹备期间,马云联合国分享数字经济浙江经验
  6. I3D (inflated 3D)是什么?
  7. Alwayson无域安装测试
  8. YUY数据转换为RGB数据,并进行灰度化处理显示
  9. error C4996 ‘pugixml_documentload‘ 被声明为已否决的解决方法
  10. Vue项目 .env .env.development .env.production 配置说明