pandas学习笔记——阅读官方文档

1. 初始化

(1)生成简单序列pd.Series

>>>s = pd.Series([1,3,5,np.nan,6,8])
>>>s
0    1.0
1    3.0
2    5.0
3    NaN   #注意空
4    6.0
5    8.0
dtype: float64

(2)生成日期序列pd.date_range

>>>dates = pd.date_range('20130101', periods=6)
>>> dates
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04','2013-01-05', '2013-01-06'],dtype='datetime64[ns]', freq='D')

(3)结构

>>>df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
# index 表示序号,columns表示列名称>>> dfA         B         C         D
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401
2013-01-06 -0.673690  0.113648 -1.478427  0.524988

 

>>>: df2 = pd.DataFrame({     'A' : 1.,....:                      'B' : pd.Timestamp('20130102'),....:                      'C' : pd.Series(1,index=list(range(4)),dtype='float32'),....:                      'D' : np.array([3] * 4,dtype='int32'),....:                      'E' : pd.Categorical(["test","train","test","train"]),....:                      'F' : 'foo' })....: >>>: df2A        B    C    D     E    F
0  1.0 2013-01-02  1.0  3   test  foo
1  1.0 2013-01-02  1.0  3  train  foo
2  1.0 2013-01-02  1.0  3   test  foo
3  1.0 2013-01-02  1.0  3  train  foo

 

2. 观察数据

(1)前n个(head),后n个(tail)

>>> df.head(2)A         B         C         D
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236>>> df.tail(3)A         B         C         D
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401
2013-01-06 -0.673690  0.113648 -1.478427  0.524988

(2)展示序号(index)、列号(columns)、值(values)

>>>df.index
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04','2013-01-05', '2013-01-06'],dtype='datetime64[ns]', freq='D')>>> df.columns
Index(['A', 'B', 'C', 'D'], dtype='object')>>> df.values
array([[ 0.4691, -0.2829, -1.5091, -1.1356],[ 1.2121, -0.1732,  0.1192, -1.0442],[-0.8618, -2.1046, -0.4949,  1.0718],[ 0.7216, -0.7068, -1.0396,  0.2719],[-0.425 ,  0.567 ,  0.2762, -1.0874],[-0.6737,  0.1136, -1.4784,  0.525 ]])

(3)快速数据统计describe

>>>df.describe()
              A         B         C         D
count  6.000000  6.000000  6.000000  6.000000
mean   0.073711 -0.431125 -0.687758 -0.233103
std    0.843157  0.922818  0.779887  0.973118
min   -0.861849 -2.104569 -1.509059 -1.135632
25%   -0.611510 -0.600794 -1.368714 -1.076610
50%    0.022070 -0.228039 -0.767252 -0.386188
75%    0.658444  0.041933 -0.034326  0.461706
max    1.212112  0.567020  0.276232  1.071804

(4)转置df.T

(5)按轴排序

降序:ascending=False
升序:ascending=True
横轴: df.sort_index(axis=1, ascending=False)
纵轴: df.sort_index(axis=0, ascending=False)
>>>df.sort_index(axis=1, ascending=False)D         C         B         A
2013-01-01 -1.135632 -1.509059 -0.282863  0.469112
2013-01-02 -1.044236  0.119209 -0.173215  1.212112
2013-01-03  1.071804 -0.494929 -2.104569 -0.861849
2013-01-04  0.271860 -1.039575 -0.706771  0.721555
2013-01-05 -1.087401  0.276232  0.567020 -0.424972
2013-01-06  0.524988 -1.478427  0.113648 -0.673690

(6)按值排序

>>> df.sort_values(by='B')A         B         C         D
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236
2013-01-06 -0.673690  0.113648 -1.478427  0.524988
2013-01-05 -0.424972  0.567020  0.276232 -1.087401

 

3. 选择, 与matlab类似

选择某列( df.A == df['A']

选择某个区间(df[0:3])

按标签选择(df.loc[dates[0]])

 

4. 数据缺失

用nan表示

舍去丢失数据的行 df.dropna(how='any')

补全丢失的数据 df.fillna(value=5)

判断是否缺失数据 pd.isna(df1)

 

5. 统计

求平均值  df.mean()

 

6. 使用函数

>>>df.apply(lambda x: x.max() - x.min())A    2.073961
B    2.671590
C    1.785291
D    0.000000
F    4.000000
dtype: float64

 

转载于:https://www.cnblogs.com/syyy/p/7908075.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 抖动提示动画

左右抖动ObjectAnimator animator ObjectAnimator.ofFloat(textView, "translationX", 0, 100, -100,0); animator.setDuration(200); animator.start(); 重复左右抖动 Animation translateAnimation new TranslateAnimation(-20, 20, 0, 0); translateAnimation.…

工作173:数组转换为对象

var fruits [“banana”, “apple”, “orange”, “watermelon”]; var fruitsObj { …fruits }; console.log(fruitsObj);// returns {0: “banana”, 1: “apple”, 2: “orange”, 3: “watermelon”,4: “apple”, 5: “orange”, 6: “grape”, 7: “apple”}

文件树的功能整理

我的需求是实现一个文件树,需要对原始数据结构进行处理,返回前端需要的数据。 1、mongodb数据库中存放的原始数据: let fData [{"pid": null,"_id": "5e847c7f11228f1e88095dda","name": "公…

JavaScript的基本语法

1.JavaScript中的表示符合保留关键字:JavaScript中定义的符号必须以字母,下划线_或美元符$开始,其他字符可以是字母数字,下划线或者美元符。如变量名,函数名等。但是,标识符不能是JavaScript中的保留关键字…

Android 视频播放器,VideoView播放视频

实现demo:https://download.csdn.net/download/meixi_android/13729352 获取视频时长 delyedTime videoView.getDuration();//单位毫秒(ms) 引入视频模块 implementation project(:dkplayer-java) implementation project(:dkplayer-ui)视…

工作174:数组转换为对象项目案例

/* getAction("/task",).then(res>{console.log(res)let List[]res.data.items.map((value,index)>{/!* console.log(value.task_recode)*!/List.push({...value.task_recode})})this.tableDataListconsole.log(this.tableData)})*/ 本次直接处理 转换为数…

JDK8和JDK1.8有何区别

通常所说的JDK8和JDK1.8是同一个意思。

【NOIP 2017】列队

Description Sylvia 是一个热爱学习的女♂孩子。 前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。 Sylvia 所在的方阵中有nm名学生,方阵的行数为 n,列数为 m。 为了便于管理,教官在训练开始时&…

AAPT2 error: check logs for details.

/1、全部替代你的项目build.gradle内容: // Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories { // maven { // url https://maven.google.com // }mavenCe…

工作175:数据在表格横坐标动态显示

1数据格式 2对数据进行处理 created() {getAction("/task/arrange").then(res>{console.log(res)this.tableDatares.data.itemsthis.timeres.data.timeconsole.log(this.time)res.data.time.map((value,index)>{console.log(value)let arr {prop:,label:value.…

mac安装mysql记录,使用zsh

1、正常安装去官网下载最新版,依次下一步就可以。 2、配置zsh 执行vim ~/.zshrc_profil 添加mysql/bin的目录: export PATH$PATH:/usr/local/mysql/bin添加完成后:wq保存 最后在命令行输入source ~/.zshrc_profile,执行脚本。 3、连接数…

vue中的ES6语法整理1

1、箭头函数 ES6允许使用“箭头”(>)定义函数 var f v > v;//等价于var f function(v){return v; }; 如果箭头函数不需要参数,则定义如下: var f () > 5; // 等同于 var f function () { return 5 }; 如果箭头函…

Android 生成二维码,条形码,二维码添加logo

zxing生成二维码 implementation com.google.zxing:core:3.3.1 implementation(name: zxing-1.0.1, ext: aar) implementation com.github.bumptech.glide:glide:4.9.0 annotationProcessor com.github.bumptech.glide:compiler:4.9.0 private Bitmap getCodeBitmap(String c…

java setDataSource 报红

开始学习spring security遇到一个问题&#xff0c;setDataSource老是报红 解决方案&#xff0c;在pom.xml中增加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><version>2…

Android 识别图片二维码,以及设置状态栏颜色

zxing依赖&#xff1a;compile cn.yipianfengye.android:zxing-library:2.2 初始化&#xff1a;private String SAVE_PIC_PATH Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)? Environment.getExternalStorageDirectory().getAbsolute…

linux之sed

sed 是一个流编辑器(stream editor)&#xff0c;主要用来执行文本替换。但 sed 的主要设计目的是以批处理的方式而不是交互的方式来编辑文件。 命令简介 基本命令格式 sed [常用选项] 命令文本 输入 常用选项 -n (--quiet, --silent)&#xff1a;安静模式。在 sed 的基本用法中…

mac 升级 15.4之后,部分软件无法打开解决

我的mac升级版本后&#xff0c;有一些好用的软件就打不开了&#xff0c;比如orc识别软件text scanner 解决方法&#xff1a; sudo codesign -f -s - --deep /Applications/TextScan.app可以直接输入 sudo codesign -f -s - --deep 再把文件拖拽过去即可