pandas速查手册(panda search)
cac55 2024-10-02 11:41 19 浏览 0 评论
python pandas速查手册
pandas接口速查
import pandas as pdimport numpy as np
导入数据
- pd.read_csv(filename):从CSV文件导入数据
- pd.read_table(filename):从限定分隔符的文本文件导入数据
- pd.read_excel(filename):从Excel文件导入数据
- pd.read_sql(query, connection_object):从SQL表/库导入数据
- pd.read_json(json_string):从JSON格式的字符串导入数据
- pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格
- pd.read_clipboard():从你的粘贴板获取内容,并传给read_table()
- pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据
导出数据
- df.to_csv(filename):导出数据到CSV文件
- df.to_excel(filename):导出数据到Excel文件
- df.to_sql(table_name, connection_object):导出数据到SQL表
- df.to_json(filename):以Json格式导出数据到文本文件
创建测试对象
- pd.DataFrame(np.random.rand(20,5)):创建20行5列的随机数组成的DataFrame对象
- pd.Series(my_list):从可迭代对象my_list创建一个Series对象
- df.index = pd.date_range('1900/1/30', periods=df.shape[0]):增加一个日期索引
查看、检查数据
- df.head(n):查看DataFrame对象的前n行
- df.tail(n):查看DataFrame对象的最后n行
- df.shape():查看行数和列数
- df.info():查看索引、数据类型和内存信息
- df.describe():查看数值型列的汇总统计
- s.value_counts(dropna=False):查看Series对象的唯一值和计数
- df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数
数据选取
- df[col]:根据列名,并以Series的形式返回列
- df[[col1, col2]]:以DataFrame形式返回多列
- s.iloc[0]:按位置选取数据
- s.loc['index_one']:按索引选取数据
- df.iloc[0,:]:返回第一行
- df.iloc[0,0]:返回第一列的第一个元素
数据清理
- df.columns = ['a','b','c']:重命名列名
- pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组
- pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组
- df.dropna():删除所有包含空值的行
- df.dropna(axis=1):删除所有包含空值的列
- df.dropna(axis=1,thresh=n):删除所有小于n个非空值的行
- df.fillna(x):用x替换DataFrame对象中所有的空值
- s.astype(float):将Series中的数据类型更改为float类型
- s.replace(1,'one'):用‘one’代替所有等于1的值
- s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3
- df.rename(columns=lambda x: x + 1):批量更改列名
- df.rename(columns={'old_name': 'new_ name'}):选择性更改列名
- df.set_index('column_one'):更改索引列
- df.rename(index=lambda x: x + 1):批量重命名索引
数据处理:Filter、Sort和GroupBy
- df[df[col] > 0.5]:选择col列的值大于0.5的行
- df.sort_values(col1):按照列col1排序数据,默认升序排列
- df.sort_values(col2, ascending=False):按照列col1降序排列数据
- df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据
- df.groupby(col):返回一个按列col进行分组的Groupby对象
- df.groupby([col1,col2]):返回一个按多列进行分组的Groupby对象
- df.groupby(col1)[col2]:返回按列col1进行分组后,列col2的均值
- df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
- df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值
- data.apply(np.mean):对DataFrame中的每一列应用函数np.mean
- data.apply(np.max,axis=1):对DataFrame中的每一行应用函数np.max
数据合并
- df1.append(df2):将df2中的行添加到df1的尾部
- df.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部
- df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join
pandas增删改查
pandas类似于SQL一样增删查改
增:添加新行或增加新列
import pandas as pd
dic = {'Name':['LiuShunxiang','Zhangshan'],'Sex':['M','F'],'Age':[27,23],'Height':[165.7,167.2],'Weight':[61,63]}
student = pd.DataFrame(dic)
dic = {'Name':['LiuShunxiang','Zhangshan'],'Sex':['M','F'],'Age':[27,23],'Height':[165.7,167.2],'Weight':[61,63]}
student = pd.DataFrame(dic)
dic1 = {'Name':['Lisi'],'Sex':['F'],'Age':[23],'Height':[167.2],'Weight':[63]}
student1 = pd.DataFrame(dic1)
#合并两个DataFrame
student2 = pd.concat([student,student1])
print(student2)
新增列的话,其实在pandas中就更简单了,例如在student2中新增一列学生成绩:
student3 = pd.DataFrame(student2, columns=['Name', "Age", "Height", "Weight", "Sex", "Score"])
print(student3)
对于新增的列没有赋值,就会出现空NaN的形式。
删:删除表、观测行或变量列
删除数据框student2,通过del命令实现,该命令可以删除Python的所有对象。
删除指定的行
student4 = student3.drop([0])
print(student4)
原数据中的索引为0行的数据已经被删除了。
根据布尔索引删除行数据,其实这个删除就是保留删除条件的反面数据,例如删除所有14岁以下的学生:
student4 = student3[student3["Age"]>25]
print(student4)
删除指定的列
student4 = student3.drop(['Height', 'Weight'], axis=1)
print(student4)
我们发现,不论是删除行还是删除列,都可以通过drop方法实现,只需要设定好删除的轴即可,即调整drop方法中的axis参数。默认该参数为0,表示删除行观测,如果需要删除列变量,则需设置为1。
改:修改原始记录的值
如果发现表中的某些数据错误了,如何更改原来的值呢?我们试试结合布尔索引和赋值的方法:例如发现student3中姓名为Liushunxiang的学生身高错了,应该是173,如何改呢?
student3.ix[student3["Name"] == "LiuShunxiang", "Height"] = 170
print(student3)
这样就可以把原来的身高修改为现在的170了
相关推荐
- 用闲置电脑当软路由安装OpenWRT(小白教程)
-
话说软路由系统OpenWRT用起来真是香,里面的好多功能都是普通路由无法实现的,由于众所周知的原因,在这里就不细说,等安装完自己体验吧。今天就介绍用一台闲置的电脑(自带两个网口)充当软路由,安装Ope...
- 一招把废旧路由器改成交换机(用旧路由器做交换机)
-
家里面的路由器用个几年,就会WIFI变卡,新路由器买回来,旧路由器就没什么用了?我在这里教大家把老路由器变成交换机。近两年新出的路由器,基本都是2个LAN口,接网络设备还需要买交换机,淘汰下来的路由器...
- 如何将PC电脑变成web服务器:将内网主机映射到外网实现远程访问
-
我是艾西,今天跟大家分享内容还是比较多人问的一个问题:如何将PC电脑变成web服务器。内网主机作为web服务器,内容包括本地内网映射、多层内网映射解决方案、绕过电信80端口封锁、DDNS功能的实现(非...
- 电脑怎么改Wi-Fi密码(电脑怎么改wifi密码视频教程)
-
一.电脑打开“任意浏览器ie/google浏览器等”——>地址栏里输入管理ip地址然后按“回车键”打开该地址,如下图所示。二.输入正确的管理员密码——>点击“登录”即可(下图是PC版本的路...
- 旧路由器不要扔,可当电脑无线网卡使用,你还不知道吧!
-
家里有旧路由器,卖二手又不值钱,扔了又可惜。想不到路由器还有以下这些功能:扩大Wifi覆盖范围;充当电脑无线网卡;把这个技巧学起来,提升网络冲浪的幸福感!导航栏路由器恢复出厂设置(通用教程)有线桥接无...
- 硬件大师AIDA64 5.60.3716更新下载:“认准”Win10
-
著名硬件测试工具AIDA64更新至5.60.3716Beta版,本次更新修复了Win10Build版本号检测错误问题,识别更准确。另外还添加了对ITEIT8738F传感器、ASRock主板、NVI...
- 互联网病毒木马与盗版软件流量产业链(一)
-
A.相关地下产业链整体深度分析可能很多用户都有这样的经历,就是不管打开什么网站,甚至根本就没有打开浏览器,都会跳出来一堆的弹窗广告。那么,这个用户要么是中的病毒木马,或者是使用了盗版软件。不管是...
- 穿越火线tenparty.dat文件损坏怎么办?
-
很多玩家在玩火线的时候经常会因弹出错误代码,而被退出游戏。下面就教大家一些常见错误代码的解决方案。方法/步骤1SX提示码提示说明:您的电脑出现1,xxx,0(xxx代表任意数字)提示码,存在游...
- 办公小技巧015:如何关闭Windows Defender安全中心
-
WindowsDefenderWindowsDefender是Widows中自带杀毒软件,可以检测及清除潜藏在操作系统里的间谍软件及广告软件。为电脑提供最高强度的安全防护,也被誉为Windows的...
- Win7/8.1/10团灭:微软发现严重漏洞
-
据外媒报道称,微软已经停止为Windows7发布新的安全更新了,理由是IE存在严重漏洞。存在严重漏洞的IE按照微软的说法,这个远程代码执行漏洞存在于IE浏览器处理脚本引擎对象的内存中。该漏洞可能以一...
- WinCC flexible 2008 SP4 的安装步骤及系统要求
-
1、软件安装过程安装注意事项(必须严格遵守):软件仅支持以下操作系统(必须是微软原版的操作系统,Ghost版系统不支持,如番茄花园、雨林木风、电脑城装机版等):WinCCflexible2008...
- Windows三方杀毒防护软件可能问题以及使用建议
-
在处理ECSWindows相关案例中,我们遇到很多奇怪的操作系统问题,例如软件安装失败,无法激活操作系统,无法访问本地磁盘,网络访问受到影响,系统蓝屏,系统Hang等,排查发现这与客户安装的各类杀...
- 杀毒软件被指泄露个人隐私(杀毒软件查出来一定是毒吗)
-
最近的多篇报道显示,你使用的杀毒软件在监视着你,而不仅仅是你计算机上的文件。2014年的一项研究使用虚拟机监视了杀毒软件产品向企业发送了什么信息。他们发现,所有测试的杀毒软件都给电脑分配了一个唯一的识...
- 开源杀毒软件ClamAV在推出约20年后终于到达1.0版本
-
ClamAV是一个开源的反病毒引擎,用于检测木马、病毒、恶意软件和其他恶意威胁。与商业Windows反恶意软件程序相比,它的检测水平相当低,但开发工作已经持续了几十年。该工具可用于所有平台,尽管它主要...
- 【Excel函数使用】时分秒时间怎么转换成秒?(二)
-
本节主要分享的函数是IFERROR和NUMBERVALUE上回我们用MID和FIND函数已经将数值提取出来,但是一些错误的返回值显示“#VALUE!”,此时我们需要检验错误返回值,并将错误值返回指定值...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)