首页 > 编程语言 >Python __ Pandas

Python __ Pandas

时间:2023-04-04 10:34:28浏览次数:56  
标签:__ 10 index Python df 2020 pd df5 Pandas

简介

可以看做是Excel
是基于Numpy的.
优点:处理表格数据(混杂数据)
需要引用:import pandas as pd

Series(无用)

类似于Numpy的一维数组
优点:相较于Nump索引功能强大

输出默认带索引:(当为字典是,,默认键是索引)
s4 = pd.Series([9.53,9.62,9.72])
创建时可以指定索引:
s5 = pd.Series([1, np.nan, 7.0, 'abc'], index=['a','b','c','d'])

DataFrame(常用)

类似于Numpy的二维数组

基本操作

获取行列数据

在 Pandas 中,有多个方法可以选取和重新组合数据,如表所示:

方法 说明
df[val] 从DataFrame中选取单列或多列。val为布尔型数组时,过滤行; val为切片时,行切片
df.loc[val] 通过val选取单行或多行
df.loc[;,val] 通过val选取单列或多列
df.loc[val1,val2] 选取val1行、val2列的值
df.iloc[val] 通过整数位置,选取单行或多行
df.iloc[;,val] 通过整数位置,选取单列或多列
df.iloc[val1, val2] 通过整数位置,选取val1 行、val2列的值

具体说明如下:
1、读取行
如果想从 DataFrame 中获取某一行数据,可以通过位置或名称进行获取。
读取行有三种方法,分别是loc,iloc,ix。

方法名 参数 备注
loc 行标签 可以使用元组
iloc 行号 可以进行切片
ix iloc和loc的并 不推荐使用IX索引器,已弃用

示例:

  1. loc通过行标签索引来确定行的
import pandas as pd
d=[[1,2,3,4],[5,6,7,8]]
index=["one","two"]
df=pd.DataFrame(d, index=index)

print df.loc["one"]
  1. iloc通过行号索引来确定行
import pandas as pd
d=[[1,2,3,4],[5,6,7,8]]
index=["one","two"]
df=pd.DataFrame(d, index=index)

print df.iloc[0]

2、读取列
如果想从 DataFrame 中获取某一列数据为一个 Series, 可以通过类似字典标记或属性的方式:
[]括号里可以是列标签/列号
实例:

print df5['浦发银行'] #也可以是 df5[0]
#2020-10-14 9.53
#2020-10-15 9.62
#2020-10-16 9.72
#Name: 浦发银行, dtype: float64

df5[['浦发银行','民生银行']]  #可以是个元组
#           浦发银行   民生银行
#2020-10-14   9.53     5.33
#2020-10-15   9.62     5.35
#2020-10-16   9.72     5.39
df5[df5['浦发银行'] > 9.6]   # 同时可以进行筛选数据
#           浦发银行   民生银行
#2020-10-15   9.62     5.35
#2020-10-16   9.72     5.39

对行列赋值

对DataFrame中某一列的值进行修改,可通过直接赋值一个标量值或一组值:

df5 = pd.DataFrame({'a':[1,2,3],'b':[5,6,7],
                    'c':[9,10,11],'d':[13,14,15]},
                    index=['x','y','z'])
#    a   b   c   d
#x   1   5   9   13
#y   2   6   10  14
#z   3   7   11  15
df5['d'] = 1  # 对d列赋值为1
#    a   b   c   d
#x   1   5   9   1
#y   2   6   10  1
#z   3   7   11  1

df5['d'] = np.arange(3) # 对d列赋值为np.arange(3)
#    a   b   c   d
#x   1   5   9   0
#y   2   6   10  1
#z   3   7   11  2

如果赋值给一个 Series, 则会精准匹配对应索引的数值, 若 Series 缺失 DataFrame 某些索引,则对应位置为空

df5['d'] = pd.Series([2,5,9],index = ['y','z','a'])
df5

image

常用方法

reindex()

表示重新索引,如果某个索引值当前不存在,就会引入
缺失值;可以通过fill_value参数填充默认值,也可以通过method参数设置填充方法;
reindex方法的methon参数的选项:
ffill或pad 前向填充值
bfill或backfill 后向填充值
或者是fill_value直接指定缺失值为多少

汇总,计算和描述性统计

Pandas 拥有一套常用的数学和统计方法, 但都是基于没有缺失数据的假设而构建的。
image

常用方法

读取excel表中的多个sheet

对于导入xlsx,pandas默认只导入第一个sheet,如果想导入多个/其他sheet需要指定:

# 按照index读取,1代表第二张表,默认是0 即默认只读取第一张表
>>> df = pd.read_excel(r'D:\myExcel/1.xlsx', sheet_name=1)
>>> df
  name  Chinese
0   lc       78
1   lb       79

# 按照表名读取
>>> df = pd.read_excel(r'D:\myExcel/1.xlsx', sheet_name='Sheet2')
>>> df
  name  Chinese
0   lc       78
1   lb       79


# 同时读取两张表,输入参数为列表
# 返回的是一个有序字典
>>> dfs = pd.read_excel(r'D:\myExcel/1.xlsx', sheet_name=[0, 'Sheet3'])
>>> dfs
OrderedDict([(0,      name  math  science
0     bob    23       12
1  millor    32       32
2   jiken    61       89
3     tom    34       94
4    json    83       12
5    dela    96       67
6   rison    90       34), ('Sheet3',   name  English
0   ld       32
1   by       98)])

案例

【例】与书本不同,本节利用tushare读取招商银行股票数据,并进行 Pandas 基本操作。tushare为金融数据分析提供便捷、快速的接口,与投研和量化策略无缝对接 数据丰富 拥有丰富的数据内容,如股票、基金、期货、数字货币等行情数据,公司财务、基金经理等基本面数据。tushare是第三方库,因此,在首次使用时,需要通过pip安装。

import pandas as pd
import tushare as ts
import datetime
ZSYH = ts.get_hist_data('600036', '2020-08-31', '2020-09-11')
ZSYH.head(3)

image

ZSYH.tail(3)

image

标签:__,10,index,Python,df,2020,pd,df5,Pandas
From: https://www.cnblogs.com/kingwz/p/16133754.html

相关文章

  • md事件计数(sb_events)
    1.总体流程 sb的更新会先计算出events的值后(++或--),更新需要load的硬盘的sb属性(sb_loaded标志),之后统一提交bio到硬盘。值得一说的是,events计数并不一定是递增的,也可以回退。2.events计算1if(test_and_clear_bit(MD_SB_CHANGE_DEVS,&mddev->sb_flags))2fo......
  • 实验一-密码引擎-3-加密API研究--20201313
    目录微软的CryptoAPI加密技术PKCS#11及CSP接口标准GMT0016-2012GMT0018-20123以龙脉GM3000Key为例,写出调用不同接口的代码(CryptoAPI,PKCS#11,SKF接口),把运行截图加入博客,并提供代码链接3.1CryptoAPI3.1.1龙脉密码钥匙驱动实例工具等\mToken-GM3000\csp\samples\CryptAPI\VC\E......
  • docker 部署mongoDB集群与读写分离
    一.生成key文件需要注意集群中所有机器都需要用同一个文件,否则会出现验证失败的情况#生成keyopensslrand-base64756>/data/volume/mongodb/configdb/mongo.key#设置访问权限chmod400/data/volume/mongodb/configdb/mongo.key 二.启动MongoDB的docker容器d......
  • 实验一-密码引擎-3-加密API研究
    任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交......
  • 计网学习笔记六 Network Layer Overview
    这节课开始进入了网络层的学习,讲述了网络层提供的功能,还有路由器内部是什么样子的,以及virtualcircuit网络和datagram网络的一点比较。网络层有什么作用呢?用一句话来说,就是需要负责将传输层的报文段从发送端传输到接收端。再详细一点点就是:在发送方将传输层传下来的数据报文......
  • 问题排查
    一、OOM问题om意味着程序申请内存过大,虚拟机无法满足,为什么会没有内存了呢?原因不外乎有两点:1)分配的少了:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。2)应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。内存泄露:申请使用完的内存没有释放,......
  • SEO常见问题解答:如何解决网站优化中遇到的难题和挑战
    SEO常见问题解答:如何解决网站优化中遇到的难题和挑战网站优化是提高网站在搜索引擎中排名和流量的重要手段,但是在优化过程中,往往会遇到各种难题和挑战,如何有效地解决这些问题,是每个网站运营者和SEO专家都需要掌握的技能。本文将针对一些常见的网站优化问题,给出一些解决方案和建议......
  • linux 系统安装 zookeeper
     下载zookeeper安装包http://mirror.bit.edu.cn/apache/zookeeper/选择3.4.14版本   上传到服务器,并解压到指定目录tar-zxvfzookeeper-3.4.14.tar.gz-C/usr/local/进入/usr/local/zookeeper/config目录1、复制文件重命名cpzoo_sample.cfg......
  • Windows - sfc scan
    C:\Windows\System32>sfc/scannowBeginningsystemscan.Thisprocesswilltakesometime.Beginningverificationphaseofsystemscan.Verification100%complete.WindowsResourceProtectionfoundcorruptfilesandsuccessfullyrepairedthem.Foronlin......
  • centos7/centos8 PHP7.2/php7.3/php7.4 以上版本 源码安装 编译
    yumupdate  1、安装依赖包[root@centos7_4~]#yum-yinstallphp-mcryptlibmcryptlibmcrypt-devel autoconf freetypegdlibmcryptlibpnglibpng-devellibjpeglibxml2libxml2-develzlibcurlcurl-develre2cnet-snmp-devellibjpeg-develphp-ldapopenl......