python学习
文章平均质量分 59
guotianqing
这个作者很懒,什么都没留下…
展开
-
删除df中值为指定值的行
原始数据假设有以下df:df = pd.DataFrame({'a': [1,2,3,np.nan,4,5], 'b': [4,5,np.nan,6,7,np.nan], 'c': [np.nan,np.nan,'what','how','why',np.nan]})# a b c0 1.0 4.0 NaN1 2.0 5.0 NaN2 3.0 NaN what3 NaN 6.0 how4 4.0 7.0 why5 5.0原创 2022-03-08 18:16:37 · 4222 阅读 · 0 评论 -
df一列给另一df赋值后得到None
问题解决有两个df1,df2,目的是把df1的列复制到df2,df2原本没有这一列,行数相等。df2['WANTED'] = df1['WANTED']结果发现df2确立有了这一列,但所有的值都是None,不是df1[‘WANTED’]的值。查询原因是这种直接使用等号赋值的方式,只适用于df1和df2具有相同的index的情况下,其他情况会导致值为None。使用insert可以解决这个问题:df2.insert(df2.shape[1], 'WANTED', df1['WANTED'].va原创 2022-03-08 10:42:26 · 1158 阅读 · 0 评论 -
df筛选指定列的字段中含有指定字符串的行
原始数据假设有以下原始df:import pandas as pddf = pd.DataFrame([['a1','b2'],['c1','d3'],['e3','f4']], columns=['x','y'])print(df)#df x y0 a1 b21 c1 d32 e3 f4含有或不含有指定字符串筛选出所有含有指定字符串的行:# 找出x列中所有含有a的行:df[df['x'].str.contains('a')]# x y原创 2022-03-08 10:06:55 · 4769 阅读 · 0 评论 -
DataFrame进行数据分组运算并筛选指定条件的group
需求假设有个股票行情文件,内容如下,数据为虚构:code,time,open,high,low000001.SZ,095000,2,3,2.5000001.SZ,095300,2,3,2.5000001.SZ,095600,2,3,2.5000002.SZ,095000,2,3,2.5000003.SZ,095600,2,3,2.5000003.SZ,095900,2,3,2.5现在要计算每支股票high和low的均值,如果某股票的行情条数不足2条,则忽略不计。实现问题不难,方法原创 2022-01-26 15:41:49 · 9599 阅读 · 0 评论 -
python中变量的赋值、浅拷贝、深拷贝
问题写一段测试程序,我本意是想从一个DataFrame对象复制出来一个独立的副本出来,代码如下:df = pd.DataFrame()df1 = df# 改变df1的元素df1[row][col] = 'b'print(df)print(df1)结果打印出来的df也改变了。也就是说,在改变df1的时候df也改变了,它们实际指向的同一块内存。如何解决这个问题呢,查阅了一些资料,把原理和解决思路作一记录。两类对象首先来了解一下python中的两类对象:不可变对象和可变对象。原创 2022-01-05 18:58:21 · 1555 阅读 · 1 评论 -
DataFrame写入hdf文件失败:object header message is too large
现象使用hdf5文件的API,直接把DataFrame写入hdf文件:import pandas as pd#...df = pd.DataFrame(index=index, columns=columns)df .to_hdf('test.hdf5', 'data', format='t', mode='w')to_hdf一行报错:object header message is too large有时候也会报另外一种错误:解决通过查看文档说明,可以发现HDF5对列头有原创 2021-12-25 14:21:38 · 1060 阅读 · 0 评论 -
DataFrame保存hdf5文件报错:TypeError:object of type ‘int‘ has no len()4
背景最近需要把数据从csv文件中读取出来,然后写入hdf5中。使用DataFrame读取csv,然后调用df的to_hdf方法直接写入hdf5文件。我使用的是table模式,示例代码如下:import pandas as pdimport numpy as npdays = ['2021-01-01', '2021-01-02']country = ['usa', 'china','rusia']df = pd.DataFrame(index=days, columns=country)原创 2021-12-19 20:58:04 · 1855 阅读 · 0 评论 -
DataFrame筛选出指定列值的行
需求对于一个DataFrame,常常需要筛选出某列为指定值的行。pandas中获取数据的有以下几种方法:布尔索引位置索引标签索引使用API假设df数据如下:import pandas as pdimport numpy as npdf = pd.DataFrame({'code': '000001.SZ 000002.SZ 000006.SZ 000009.SZ'.split(), 'open': '1.2 20 3.5 2.8'.split原创 2021-08-25 18:34:51 · 48940 阅读 · 1 评论 -
Python中把字典dic转换为DataFrame
需求有时候,需要把dic转换为DataFrame格式,便于查看和存储。假设有以下的dic:dic={'a':"1", 'b': "2", 'c':'3'}本文来探讨一下把它转换为df的几种方式。直接转换:key为列名直接转换时,需要把字典转化为list来操作:import pandas as pddic={'a':"1", 'b': "2", 'c':'3'}df= pd.DataFrame([dic])print(df)输出如下: a b c0 1 2 3原创 2021-08-25 16:59:34 · 10406 阅读 · 2 评论 -
padas替换DataFrame中值
总括常见的替换包括:把一列中的某个旧值替换为一个新值:df['column_name'] = df['column_name'].replace(['old_value'],'new_value')把一列中的多个旧值替换为一个新值:df['column name'] = df['column name'].replace(['1st old value','2nd old value',...],'new value')把一列中的多个旧值替换为多个新值:df['column name'] = d原创 2021-07-22 18:05:00 · 1040 阅读 · 0 评论 -
pandas修改DataFrame行/列/字段值
pandas修改dataframe行/列/字段值增加/修改一列有如下几种方法增加一列:增加具有相同值的一列import pandas as pd dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] } df=pd.DataFrame(dict,index=['2018','2019','2020']) print(df)原创 2021-07-22 17:28:27 · 28066 阅读 · 1 评论 -
Python使用json可视化Redis集群中的protobuf数据
背景在项目中,数据经过protobuf序列化后存入Redis集群。这是由c++来做的。但pb序列化的数据是二进制的,不便于人工查看。通过RedisDesktopManager查看时,是这样的:可以使用Python写个脚本反序列化一下,并打印出json格式的字符串,这样调试就方便多了。Python连接Redis集群Python连接Redis和连接Redis集群使用的包是不一样的。默认的redis只能连接Redis单实例,使用redis-py-cluster连接到集群:pip install原创 2021-04-16 08:40:53 · 777 阅读 · 0 评论 -
pandas读写csv
pandaspython提供了csv库专门用于csv文件的读写,但它的功能不是很强大。而pandas则弥补了这些问题:有专门支持读取csv文件的pd.read_csv()函数读取为DataFrame格式支持通过列名查找特定列功能强大,方便扩展以下是待处理的csv文件:读取读取csv文件只需要一行代码:#--coding: utf-8--import pandas as pdfile_path = r'./demo.csv'df = pd.read_csv(file_p原创 2021-04-11 12:42:15 · 1531 阅读 · 0 评论 -
Python读写Excel——Pandas
简介常用的读写Excel的库:pandasopenpyxlxlrd/xlwt/xlutils使用它们都能够达到读写Excel的目的,但它们的侧重点又略有不同。具体如下:pandas:数据处理最常用的分析库之一,可以读取各种各样格式的数据文件,一般输出dataframe格式,功能强大openpyxl:主要针对xlsx格式的excel进行读取和编辑xlrd库:从excel中读取数据,支持xls、xlsxxlwt库:对excel进行修改操作,不支持对xlsx格式的修改xlutils库原创 2021-04-10 18:41:42 · 2041 阅读 · 0 评论 -
Python使用Pygal可视化GitHub仓库排名
获取GitHub数据方式要想从网络获取数据,就要使用Web API,通过它可以使用非常具体的URL请求特定信息。返回的信息通常是JSON或CSV格式,使用Python能够很方便地处理它们。本节,我们请求的网站URL为:https://api.github.com/search/repositories?q=language:python&sort=stars它返回GitHub当前托管Python的仓库项目和按星标排序后的数据。返回的数据示例如下:可见,GitHub上共有Python仓原创 2021-02-15 15:46:04 · 315 阅读 · 0 评论 -
Python分析csv文件及可视化绘图
简介项目中经常需要对日志文件进行分析,之前使用Shell,常用的是grep, awk, sed等。使用Shell有一个缺点,就是可视化不友好,经常需要把分析后的文件导出,再用Python/Excel可视化一下。本文直接使用Python对日志文件进行分析,并使用matplotlib进行可视化。数据这里的数据文件选用一个天气数据文件,它存储了某地一个时间段的最高温度、最低温度等数据。目的是把不同时间点最高温度和最低温度数据进行可视化,用折线图的形式绘制出来。数据文件引用《Python编程——从原创 2021-02-13 11:35:01 · 13074 阅读 · 2 评论 -
NumPy基础入门
NumpyNumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。许多深度学习框架使用Numpy作为基础的数据分析包,了解它的基础使用对于入门机器学习很有帮助。NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:一个强大的N维数组对象 ndarray广播功能函数整合 C/C++/Fortran 代码的工具线性代数、傅里叶变换、随机数生成等功能下面默认已经安装了python原创 2020-11-04 20:41:30 · 227 阅读 · 0 评论 -
python3基础语法速览——笨方法学python3读书笔记
utf-8编码# --coding: utf-8--打印print("hello world")print("Hens", 25 + 30 / 6)print(3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6)print("Is it greater ?", 5 >= -2)print("It's fleece was white as %s." % 'snow')print("." * 10)formatter = "%s %s %s %ss"print原创 2020-10-26 19:47:27 · 227 阅读 · 0 评论 -
Anaconda入门:解决CondaHTTPError: HTTP 000 CONNECTION FAILED for url
简介Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。类似于Ubuntu是Linux的发行版,你基本不会直接去使用Linux,而是选择一个发行版,如Ubuntu/CentOS/RedHat/Debian等,因为发行版已经提供了基础的组件、库和应用,使用非常简单方便。所以,想要学习Python的同学,不要再纠结python2/python3等种种版本了,也不要再纠结各种包的管理和代码移植原创 2020-09-17 18:46:19 · 15737 阅读 · 0 评论 -
使用python实现第一个网络爬虫
什么是网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。有没有想过这样一个问题:在google的搜索框内输入一个词语,和这个词语相关的内容怎么就显示出来了呢?可以说,类似google、百度这样的搜索引擎也是网络爬虫。用...原创 2018-06-09 21:33:29 · 1418 阅读 · 0 评论 -
Python包管理工具简介
概述在Python环境中已经有很多成熟的包,可以通过安装这些包来扩展我们的程序。例如,很多时候Python开发人员都会去PyPI网站去查找自己想要使用的包,然后进行安装。PyPI ( Python Package Index)是获得第三方 Python 软件包以补充标准库的一个站点。在安装Python包的过程中,经常涉及到distutils、setuptools、distribute、...转载 2018-05-12 09:07:13 · 2594 阅读 · 0 评论