数据挖掘 pandas基础入门之操作

为什么80%的码农都做不了架构师?>>>   hot3.png

统计

import pandas
import numpy# 通过传递一个 numpyarray,时间索引以及列标签来创建一个DataFrame:
dates = pandas.date_range("20180509", periods=6)
df = pandas.DataFrame(numpy.random.randn(6, 4), index=dates, columns=list('ABCD'))
print("时间索引以及列标签来创建一个DataFrame:", df, sep="\n")# 描述性统计,求每一列的平均数
print("每一列的平均数", df.mean(), sep="\n")# 其他轴的形同操作
print("每一行的平均数", df.mean(1), sep="\n")# 对于拥有不同维度、需要对其的对象进行操作。Pandas会自动沿着指定的维度进行广播
s = pandas.Series([1, 3, 5, numpy.nan, 6, 8], index=dates).shift(2)  # shift函数主要的功能就是使数据框中的数据移动。
print("行索引不变,移动列的数据。", s, sep="\n")
print("df-s", df.sub(s, axis='index'), sep="\n")# 按照index进行匹配,为s补全为一个矩阵后进行计算,完成两个矩阵相减(df-s)
"E:\Python 3.6.2\python.exe" F:/PycharmProjects/test.py
时间索引以及列标签来创建一个DataFrame:A         B         C         D
2018-05-09  0.689544  0.875232  0.452993  1.875628
2018-05-10 -0.216719  0.298931 -1.159366  0.188906
2018-05-11  0.268589  1.206928 -0.119726 -0.148764
2018-05-12 -1.035244  1.092390  1.006421 -0.226186
2018-05-13  0.670916  0.738597 -0.184312 -1.280867
2018-05-14 -0.359534  1.109787  0.650537 -0.030985
每一列的平均数
A    0.002925
B    0.886978
C    0.107758
D    0.062955
dtype: float64
每一行的平均数
2018-05-09    0.973349
2018-05-10   -0.222062
2018-05-11    0.301757
2018-05-12    0.209345
2018-05-13   -0.013917
2018-05-14    0.342451
Freq: D, dtype: float64
行索引不变,移动列的数据。
2018-05-09    NaN
2018-05-10    NaN
2018-05-11    1.0
2018-05-12    3.0
2018-05-13    5.0
2018-05-14    NaN
Freq: D, dtype: float64A         B         C         D
2018-05-09       NaN       NaN       NaN       NaN
2018-05-10       NaN       NaN       NaN       NaN
2018-05-11 -0.731411  0.206928 -1.119726 -1.148764
2018-05-12 -4.035244 -1.907610 -1.993579 -3.226186
2018-05-13 -4.329084 -4.261403 -5.184312 -6.280867
2018-05-14       NaN       NaN       NaN       NaNProcess finished with exit code 0

函数apply()

import pandas
import numpy# 通过传递一个 numpyarray,时间索引以及列标签来创建一个DataFrame:
dates = pandas.date_range("20180509", periods=6)
df = pandas.DataFrame(numpy.random.randn(6, 4), index=dates, columns=list('ABCD'))
print("时间索引以及列标签来创建一个DataFrame:", df, sep="\n")# 对数据应用函数
print("从第一行开始,其下一行网上一行结果上累加:", df.apply(numpy.cumsum), sep="\n")  # 每行数值向上求和
print("每列的最大数减去最小数:", df.apply(lambda x: x.max() - x.min()), sep="\n")
"E:\Python 3.6.2\python.exe" F:/PycharmProjects/test.py
时间索引以及列标签来创建一个DataFrame:A         B         C         D
2018-05-09  0.628765 -1.453298 -0.169228 -0.185065
2018-05-10  0.444467  0.159900 -1.581807  0.852065
2018-05-11  1.537534 -1.718371 -1.378338 -0.183929
2018-05-12 -2.131473 -2.586691 -0.241944 -0.842446
2018-05-13 -0.898688  0.394125  1.413996 -1.897569
2018-05-14 -0.891981  0.913925  0.686605 -0.842980
从第一行开始,其下一行网上一行结果上累加:A         B         C         D
2018-05-09  0.628765 -1.453298 -0.169228 -0.185065
2018-05-10  1.073232 -1.293399 -1.751035  0.667000
2018-05-11  2.610767 -3.011770 -3.129372  0.483071
2018-05-12  0.479293 -5.598461 -3.371316 -0.359374
2018-05-13 -0.419395 -5.204337 -1.957321 -2.256944
2018-05-14 -1.311376 -4.290412 -1.270715 -3.099924
每列的最大数减去最小数:
A    3.669008
B    3.500616
C    2.995802
D    2.749634
dtype: float64Process finished with exit code 0

直方图

import pandas
import numpy# 通过传递一个 numpyarray,时间索引以及列标签来创建一个DataFrame:
dates = pandas.date_range("20180509", periods=6)
df = pandas.DataFrame(numpy.random.randn(6, 4), index=dates, columns=list('ABCD'))
print("时间索引以及列标签来创建一个DataFrame:", df, sep="\n")s = pandas.Series(numpy.random.randint(0, 7, size=10))
print("随机生成十个数的序列:", s, sep="\n")
print("统计每个数出现的次数:", s.value_counts(), sep="\n")
"E:\Python 3.6.2\python.exe" F:/PycharmProjects/test.py
时间索引以及列标签来创建一个DataFrame:A         B         C         D
2018-05-09 -1.447060  0.998378 -0.272173 -0.240873
2018-05-10  2.019563  0.397001  1.469093 -0.313272
2018-05-11  0.932445  0.973830 -1.914278 -1.374748
2018-05-12 -0.980636  1.336340 -0.232319  1.176833
2018-05-13 -1.850315 -0.738035 -1.085791  1.378875
2018-05-14  1.162965  1.892369  0.499482  0.647424
0    5
1    2
2    1
3    4
4    1
5    5
6    0
7    1
8    0
9    3
dtype: int32Process finished with exit code 0

字符串方法

Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素。

import pandas
import numpys = pandas.Series(['A', 'B', 'C', 'Aaba', 'Baca', numpy.nan, 'CABA', 'dog', 'cat'])
print("序列值全部改成小写:", s.str.lower(), sep="\n")
"E:\Python 3.6.2\python.exe" F:/PycharmProjects/test.py
序列值全部改成小写:
0       a
1       b
2       c
3    aaba
4    baca
5     NaN
6    caba
7     dog
8     cat
dtype: objectProcess finished with exit code 0

 

转载于:https://my.oschina.net/gain/blog/1823689

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

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

相关文章

C# Task.Delay()和Thread.Sleep()有什么区别?

很多时候我们需要做一段延时处理,就直接Thread.Sleep(n)处理了,但实际上延时也可以用Task.Delay(n),那二者之间有没有区别呢?我们先来看一个案例:using System; using System.Threading; using System.Threading.Tasks…

.NET MAUI实战 MessagingCenter

1.概要在.NET MAUI提供了消息机制,该机制为订阅/发布模式。发布-订阅模式是一种消息传递模式,在此模式下,发布者可在无需知道任何接收方(称为订阅方)的情况下发送消息。同样,订阅方可在不了解任何发布方的情…

洛谷——P1033 自由落体

https://www.luogu.org/problem/show?pid1033#sub 题目描述 在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1。在地面上有一个小车(长为 L,高为 K,距…

java 接口防刷_java轻量级接口限流/防刷插件

简介call-limit提供接口限流、防刷的功能,插件基于spring开发,在应用应用的任何一个逻辑层皆可使用(web、service、dao),插件支持单机应用下的限流和分布式应用的限流(分布式应用限流需要依赖redis),在简单业务场景下插件可为大家…

【leetcode】521. Longest Uncommon Subsequence I

题目如下: 解题思路:本题有点意思。首先如果输入的两个字符串都为空,那么结果是-1;如果两个字符串长度不一样,那么结果是较长的字符串的长度,因为较长的字符串肯定是自身的子序列,但一定不是较短…

【问题】为什么 System.Timers.Timer 更改间隔时间后的第一次触发时间是设定时间的三倍?...

【问题】为什么 System.Timers.Timer 更改间隔时间后的第一次触发时间是设定时间的三倍?独立观察员 2022 年 9 月 4 日在编写 “Wifi 固定器 [1]” 程序时,按如下方式使用了定时器:// 声明; private Timer _Timer new Timer() { …

JS魔法堂:判断节点位置关系

一、前言                           在polyfill querySelectorAll 和写弹出窗时都需要判断两个节点间的位置关系,通过jQuery我们可以轻松搞定,但原生JS呢?下面我将整理各种判断方法,以供日后查阅。 二…

ChartCtrl源码剖析之——CChartAxis类

CChartAxis类用来绘制波形控件的坐标轴,这个源码相对较复杂,当初阅读的时候耗费了不少精力来理解源码中的一些实现细节。 CChartAxis类的头文件。 #if !defined(AFX_CHARTAXIS_H__063D695C_43CF_4A46_8AA0_C7E00268E0D3__INCLUDED_) #define AFX_CHARTA…

基于.net开发的自助餐饮系统

本文系 EMQ&Intel 联合举办的首届“中国物联网数据基础设施最佳案例评选大赛“个人开发者赛道一等奖作品。项目简介智能餐饮自助结算系统是一个由称重系统、显示屏、自助扫码盒和 Intel CPU 组成的智能自助结算终端,将装有菜品的托盘放到秤盘上结算,…

java打包维护_java打包详解

from yahh2008的blog: http://www.matrix.org.cn/blog/yahh2008/兄弟,对java着迷吗,或者是为了自己的生计,不论怎样都欢迎你进入精彩java世界,welcome!可能你刚刚对每个人说:Hello World!也或者…

Linux高级文本处理之sed(三)

sed高级命令sed允许将多行内容读取到模式空间,这样你就可以匹配跨越多行的内容。本篇笔记主要介绍这些命令,它们能够创建多行模式空间并且处理之。其中,N/D/P这三个多行命令分别对应于小写的n/d/p命令,后者我们在上一篇已经介绍。…

如何在 C# 程序中注入恶意 DLL ?

一:背景 前段时间在训练营上课的时候就有朋友提到一个问题,为什么 Windbg 附加到 C# 程序后,程序就处于中断状态了?它到底是如何实现的?其实简而言之就是线程的远程注入,这一篇就展开说一下。二&#xff1a…

练习题|网络编程-socket开发

原文:https://www.cnblogs.com/shengyang17/p/8822745.html 1、什么是C/S架构? C指的是client(客户端软件),S指的是Server(服务端软件),C/S架构的软件,实现服务端软件与客…

ABP vNext微服务架构详细教程(补充篇)——单层模板(上)

简介在之前的《ABP vNext微服务架构详细教程》系列中,我们已经构建了完整的微服务架构实例,但是在开发过程中,我们会发现每个基础服务都包含10个类库,这是给予DDD四层架构下ABP的实现方案,但是实际使用中我们会发现&am…

mybatis源码学习(三):MappedStatement的解析过程

我们之前介绍过MappedStatement表示的是XML中的一个SQL。类当中的很多字段都是SQL中对应的属性。我们先来了解一下这个类的属性: public final class MappedStatement {private String resource;private Configuration configuration;//sql的IDprivate String id;//…

C# 二十年语法变迁之 C# 8参考

C# 二十年语法变迁之 C# 8参考自从 C# 于 2000 年推出以来,该语言的规模已经大大增加,我不确定任何人是否有可能在任何时候都对每一种语言特性都有深入的了解。因此,我想写一系列快速参考文章,总结自 C# 2.0 以来所有主要的新语言…

windows 提权 cve-2018-8897

windows 提权 cve-2018-8897影响范围:基本上是全版本具体影响范围看详情:https://portal.msrc.microsoft.co … isory/CVE-2018-8897http://www.o2oxy.cn/wp-content/uploads/2018/06/cve-2018-8897.rar转载于:https://blog.51cto.com/9861015/2126608

java servlet练习测试

步骤: 0、首先创建web project,工程名:test_servlet 1、编写Servlet,TestServlet.java文件内容: package com.ouyang.servlet;import java.io.IOException; import java.sql.Connection; import java.sql.DriverManage…

《ASP.NET Core 6框架揭秘》实例演示[19]:数据加解密与哈希

数据保护(Data Protection)框架旨在解决数据在传输与持久化存储过程中的一致性(Integrity)和机密性(confidentiality)问题,前者用于检验接收到的数据是否经过篡改,后者通过对原始的数…

如何在ABAP Netweaver和CloudFoundry里记录并查看日志

Netweaver 要记录日志需要有一个checkpoint group&#xff0c;可以自行创建也可以使用标准的。这里我重用标准的group&#xff1a;DEMO_CHECKPOINT_GROUP。 tcode SAAB&#xff0c;点Display <->Activate进入编辑模式&#xff0c;将Logpoints设置为"Log"&#…