pandas组队学习-Task9 时序数据

Pandas之Resampling函数的相关用法 用于时间序列频率转换和重采样的便捷方法。对象必须具有类似日期时间的索引(DatetimeIndex、PeriodIndex 或 TimedeltaIndex),或者调用者必须将类似日期时间的系列/索引的标签传递给 on/level 关键字参数ruleaxisclosed这个参数指定时间间隔的哪一端是闭合的。【ME:月末(Month End);YE:年末(Year End);QE:季末(Quarter End);BME:商业月末(Business Month End); 阅读详情

目录

1. 学习内容

2. 准备工作

3. 创建时序数据

3.1 时序数据类型

3.2 创建时间点

3.2.1 to_datetime()方法

3.2.2 date_range()方法

3.2.3 bdate_range()方法

3.3 DateOffset对象

3.3.1 DateOffset与Timedelta的区别

4. 时序的索引及属性

4.1 索引切片

4.2 子集索引

4.3 时间点的属性

5. 重采样

5.1 一般用法

5.2 采样聚合

5.3 采样组的迭代

6. 窗口函数

6.1 Rolling

6.1.1 常用聚合

6.1.2 rolling的apply聚合

6.1.3 基于时间的rolling

6.2 Expanding

6.2.1 expanding函数

6.2.2 几个特别的Expanding类型函数

1. 学习内容

1. 学会时序类型数据的创建

2. 了解时序数据的索引与属性

3. 对时序数据进行重采样

本项目参见https://github.com/datawhalechina/team-learning/tree/master/Pandas%E6%95%99%E7%A8%8B%EF%BC%88%E4%B8%8A%EF%BC%89

2. 准备工作

import pandas as pd
import numpy as np

3. 创建时序数据

3.1 时序数据类型

图3.1 时序数据类型

3.2 创建时间点

3.2.1 to_datetime()方法

pandas在时间点建立的输入格式规定上给了很大的自由度,很多表示时间的字符串都能直接且正确建立同一时间点。而对于无法直接建立的数据,也可以使用format参数来指定字符串格式从而建立时间点。

pd.to_datetime('2020\\1\\1', format = '%Y\\%m\\%d')
pd.to_datetime('2020`1`1', format = '%Y`%m`%d')
pd.to_datetime('2020.1 1', format = '%Y.%m %d')
pd.to_datetime('1 1.2020', format = '%d %m.%Y')
Timestamp('2020-01-01 00:00:00')

同时,使用列表可以将其转为时间点索引。

pd.Series(range(2), index = pd.to_datetime(['2020/1/1', '2020/1/2']))
2020-01-01    0
2020-01-02    1
dtype: int64

对于DataFrame而言,如果列已经按照时间顺序排好,则利用to_datetime可自动转换。

df = pd.DataFrame({'year': [2020, 2020], 'month': [1, 1], 'day': [1, 2]})
pd.to_datetime(df)
0   2020-01-01
1   2020-01-02
dtype: datetime64[ns]

事实上,Timestamp的精度远远不止day,可以最小到纳秒ns。当然,缩小精度的代价是缩小表示范围。

pd.to_datetime('2020/1/1 00:00:00.123456789')
Timestamp('2020-01-01 00:00:00.123456789')
print(pd.Timestamp.min)
print(pd.Timestamp.max)
1677-09-21 00:12:43.145225
2262-04-11 23:47:16.854775807

3.2.2 date_range()方法

一般来说,start/end/periods(时间点个数)/freq(间隔方法)是该方法最重要的参数,给定了其中的3个,剩下的一个就会被确定。

pd.date_range(start = '2020/1/1', end = '2020/1/10', periods = 3)
DatetimeIndex(['2020-01-01 00:00:00', '2020-01-05 12:00:00',
               '2020-01-10 00:00:00'],
              dtype='datetime64[ns]', freq=None)

其中freq参数有许多选项,下面将常用部分罗列如下:

图3.2 freq参数的部分选项

3.2.3 bdate_range()方法

bdate_range是一个类似与date_range的方法,特点在于可以在自带的工作日间隔设置上,再选择weekmask参数和holidays参数。它的freq中有一个特殊的'C'/'CBM'/'CBMS'选项,表示定制,需要联合weekmask参数和holidays参数使用。

# 例如现在需要将工作日中的周一、周二、周五3天保留,并将部分holidays剔除
weekmask = 'Mon Tue Fri'
holidays = [pd.Timestamp('2020/1/%s' %i) for i in range(7, 13)]
#注意holidays
pd.bdate_range(start = '2020-1-1',end = '2020-1-15', freq = 'C', \
               weekmask = weekmask, holidays = holidays)
DatetimeIndex(['2020-01-03', '2020-01-06', '2020-01-13', '2020-01-14'], dtype='datetime64[ns]', freq='C')

3.3 DateOffset对象

3.3.1 DateOffset与Timedelta的区别

Timedelta绝对时间差的特点指无论是冬令时还是夏令时,增减1day都只计算24小时。DateOffset相对时间差指,无论一天是23\24\25小时,增减1day都与当天相同的时间保持一致。例如,英国当地时间 2020年03月29日,01:00:00 时钟向前调整 1 小时 变为 2020年03月29日,02:00:00,开始夏令时。

4. 时序的索引及属性

4.1 索引切片

rng = pd.date_range('2020', '2021', freq = 'W')
ts = pd.Series(np.random.randn(len(rng)), index = rng)
ts.head()
2020-01-05   -0.355636
2020-01-12    2.377644
2020-01-19   -0.918134
2020-01-26   -0.136201
2020-02-02   -1.320732
Freq: W-SUN, dtype: float64
# 合法字符自动转换为时间点
ts['2020-01-26': '20200726'].head()
2020-01-26   -0.136201
2020-02-02   -1.320732
2020-02-09   -0.180517
2020-02-16   -0.346887
2020-02-23    0.663864
Freq: W-SUN, dtype: float64

4.2 子集索引

ts['2020-7'].head()
2020-07-05    0.911370
2020-07-12   -0.949458
2020-07-19    0.754932
2020-07-26    0.014313
Freq: W-SUN, dtype: float64
# 支持混合形态索引
ts['2011-1': '20200726'].head()
2020-01-05   -0.355636
2020-01-12    2.377644
2020-01-19   -0.918134
2020-01-26   -0.136201
2020-02-02   -1.320732
Freq: W-SUN, dtype: float64

4.3 时间点的属性

采用dt对象可以轻松获得关于时间的信息。

pd.Series(ts.index).dt.week.head()
0    1
1    2
2    3
3    4
4    5
dtype: int64
pd.Series(ts.index).dt.day.head()
0     5
1    12
2    19
3    26
4     2
dtype: int64

利用strftime可重新修改时间格式。

pd.Series(ts.index).dt.strftime('%Y-间隔1-%m-间隔2-%d').head()
0    2020-01-05 00:00:00
1    2020-01-12 00:00:00
2    2020-01-19 00:00:00
3    2020-01-26 00:00:00
4    2020-02-02 00:00:00
dtype: object

对于datetime对象可以直接通过属性获取信息。

pd.date_range('2020', '2021', freq = 'W').month
Int64Index([ 1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  3,  3,  4,  4,  4,  4,
             5,  5,  5,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  8,
             8,  9,  9,  9,  9, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12,
            12],
           dtype='int64')
pd.date_range('2020', '2021', freq = 'W').weekday
Int64Index([6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
            6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
            6, 6, 6, 6, 6, 6, 6, 6],
           dtype='int64')

5. 重采样

所谓重采样,就是指resample函数,它可以看做时序版本的groupby函数。

5.1 一般用法

采样频率一般设置为上面提到的offset字符。

df_r = pd.DataFrame(np.random.randn(1000, 3), \
                    index = pd.date_range('1/1/2020', freq = 'S', periods = 1000), \
                    columns = ['A', 'B', 'C'])
r = df_r.resample('3min')
r.sum()
                             A          B          C
2020-01-01 00:00:00   2.357245 -16.806970   7.988968
2020-01-01 00:03:00 -10.272145  15.806088 -25.279588
2020-01-01 00:06:00   2.544400  12.645482  -3.338972
2020-01-01 00:09:00  -0.872054  12.439237  15.888432
2020-01-01 00:12:00  -1.293978  16.658237  16.703369
2020-01-01 00:15:00   9.466841  -5.728703   2.354720
df_r2 = pd.DataFrame(np.random.randn(200, 3), \
                     index = pd.date_range('1/1/2020', freq = 'D', periods = 200), \
                     columns = ['A', 'B', 'C'])
r = df_r2.resample('CBMS')
r.sum()
                   A         B          C
2020-01-01 -0.990115 -0.460111  -3.429150
2020-02-03  7.131371  0.498715   2.033721
2020-03-02  4.153905 -3.487473  10.328431
2020-04-01 -0.583855 -3.208713  -6.282215
2020-05-01  2.083735  1.235905   1.326104
2020-06-01  2.496877 -0.014361  -3.089092
2020-07-01 -3.104211  7.385895  -1.652805

5.2 采样聚合

r = df_r.resample('3T')
r['A'].mean()
2020-01-01 00:00:00   -0.035590
2020-01-01 00:03:00   -0.134152
2020-01-01 00:06:00   -0.009651
2020-01-01 00:09:00    0.037712
2020-01-01 00:12:00    0.024681
2020-01-01 00:15:00    0.018664
Freq: 3T, Name: A, dtype: float64

5.3 采样组的迭代

采样组的迭代和groupby迭代完全类似,对于每一个组都可以分别做相应操作。

date_list = ['2020-01-01 00:00:00', '2020-01-01 00:30:00', \
             '2020-01-01 00:31:00', '2020-01-01 01:00:00', \
             '2020-01-01 03:00:00', '2020-01-01 03:05:00']
small = pd.Series(range(6),index = pd.to_datetime(date_list))
resampled = small.resample('H')
for name, group in resampled:
    print("Group: ", name)
    print("-" * 27)
    print(group, end = "\n\n")
Group:  2020-01-01 00:00:00
---------------------------
2020-01-01 00:00:00    0
2020-01-01 00:30:00    1
2020-01-01 00:31:00    2
dtype: int64

Group:  2020-01-01 01:00:00
---------------------------
2020-01-01 01:00:00    3
dtype: int64

Group:  2020-01-01 02:00:00
---------------------------
Series([], dtype: int64)

Group:  2020-01-01 03:00:00
---------------------------
2020-01-01 03:00:00    4
2020-01-01 03:05:00    5
dtype: int64

6. 窗口函数

下面主要介绍pandas中两类主要的窗口(window)函数:rolling/expanding。

s = pd.Series(np.random.randn(1000), \
              index = pd.date_range('1/1/2020', periods = 1000))
s.head()
2020-01-01   -0.346470
2020-01-02   -1.372667
2020-01-03   -0.026028
2020-01-04    0.696390
2020-01-05    0.684197
Freq: D, dtype: float64

6.1 Rolling

6.1.1 常用聚合

所谓rolling方法,就是规定一个窗口,它和groupby对象一样,本身不会进行操作,需要配合聚合函数才能计算结果。

s.rolling(window = 50)
Rolling [window=50,center=False,axis=0]
s.rolling(window = 50).mean()
2020-01-01         NaN
2020-01-02         NaN
2020-01-03         NaN
2020-01-04         NaN
2020-01-05         NaN
                ...   
2022-09-22   -0.131049
2022-09-23   -0.121698
2022-09-24   -0.111032
2022-09-25   -0.096440
2022-09-26   -0.113077
Freq: D, Length: 1000, dtype: float64

min_periods参数是指需要的非缺失数据点数量阀值。

s.rolling(window = 50, min_periods = 3).mean().head()
2020-01-01         NaN
2020-01-02         NaN
2020-01-03   -0.581722
2020-01-04   -0.262194
2020-01-05   -0.072916
Freq: D, dtype: float64

6.1.2 rolling的apply聚合

使用apply聚合时,只需记住传入的是window大小的Series,输出的必须是标量即可,比如如下计算变异系数。

s.rolling(window = 50, min_periods = 3).apply(lambda x: x.std() / x.mean()).head()
2020-01-01          NaN
2020-01-02          NaN
2020-01-03    -1.209285
2020-01-04    -3.277140
2020-01-05   -11.740584
Freq: D, dtype: float64

6.1.3 基于时间的rolling

s.rolling('15D').mean().head()
2020-01-01   -0.346470
2020-01-02   -0.859568
2020-01-03   -0.581722
2020-01-04   -0.262194
2020-01-05   -0.072916
Freq: D, dtype: float64

可选closed='right'(默认)'left''both''neither'参数,决定端点的包含情况。

s.rolling('15D', closed = 'right').sum().head()
2020-01-01   -0.346470
2020-01-02   -1.719137
2020-01-03   -1.745165
2020-01-04   -1.048775
2020-01-05   -0.364578
Freq: D, dtype: float64

6.2 Expanding

6.2.1 expanding函数

普通的expanding函数等价与rolling(window=len(s),min_periods=1),是对序列的累计计算。

s.rolling(window = len(s), min_periods = 1).sum().head()
2020-01-01   -0.346470
2020-01-02   -1.719137
2020-01-03   -1.745165
2020-01-04   -1.048775
2020-01-05   -0.364578
Freq: D, dtype: float64
s.expanding().sum().head()
2020-01-01   -0.346470
2020-01-02   -1.719137
2020-01-03   -1.745165
2020-01-04   -1.048775
2020-01-05   -0.364578
Freq: D, dtype: float64
s.expanding().apply(lambda x: sum(x)).head()
2020-01-01   -0.346470
2020-01-02   -1.719137
2020-01-03   -1.745165
2020-01-04   -1.048775
2020-01-05   -0.364578
Freq: D, dtype: float64

6.2.2 几个特别的Expanding类型函数

cumsum/cumprod/cummax/cummin都是特殊expanding累计计算方法。

s.cumsum().head()
2020-01-01   -0.346470
2020-01-02   -1.719137
2020-01-03   -1.745165
2020-01-04   -1.048775
2020-01-05   -0.364578
Freq: D, dtype: float64

shift/diff/pct_change都是涉及到了元素关系:

shift是指序列索引不变,但值向后移动;

diff是指前后元素的差,period参数表示间隔,默认为1,并且可以为负;

pct_change是值前后元素的变化百分比,period参数与diff类似。

s.shift(2).head()
2020-01-01         NaN
2020-01-02         NaN
2020-01-03   -0.346470
2020-01-04   -1.372667
2020-01-05   -0.026028
Freq: D, dtype: float64
s.diff(3).head()
2020-01-01         NaN
2020-01-02         NaN
2020-01-03         NaN
2020-01-04    1.042860
2020-01-05    2.056864
Freq: D, dtype: float64
s.pct_change(3).head()
2020-01-01         NaN
2020-01-02         NaN
2020-01-03         NaN
2020-01-04   -3.009957
2020-01-05   -1.498444
Freq: D, dtype: float64

 

解决ArcGIS-OpenStreetMap Toolbox-Load OSM File错误 在安装成功OpenStreetMap Toolbox后,首次运行Load OSM File工具,出现以下错误 阅读详情

相关推荐

单细胞测序流程(五)t-sne聚类分析和寻找marker基因

系列文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分分析——PCA 本期主讲内容——t-sne聚类分析和寻找marker基因 介绍:T-SNE是一种用于探索高维数据的非线性降维算法。它将多维数据映射到适合于人类观察的两个或多个维度。 一、课前准备 之前所使用的数据 R语言的IDE 二、过程 聚类分析的目的是根据细胞的差别所进行细胞分群,两个..

qq_45478665的博客 2万+

初学pandas(七)坑爹版本与resamp…

起因是写好的一程序,放到服务器上跑就失败了。搜索网上半天没找着原因。   pandas有个库可以让一时间序列按周(月或年等)汇总,如进行数据分析的时候,需要将不均匀的时间戳数据按照月来汇总排列,那么就需要用到resample函数。使用resample有个要求,就是dataframe的index要为时间序列类型的。一般的index不是从0到n,就是字符串,那样的话没办法resample。所以我们要

flash胜龙的博客 3409

安路科技FPSoC开发实战:从芯片特性到边缘计算应用

本文深入解析安路科技FPSoC芯片在边缘计算领域的开发实战,重点介绍SALDRAGON系列芯片的异构计算架构优势,包括RISC-V/ARM处理器与FPGA的协同工作。通过工业控制和智能视觉应用案例,展示硬件加速实现与低功耗设计技巧,帮助开发者高效利用FPSoC进行边缘计算应用开发。

weixin_29248611的博客 375

时间序列的操作

时间序列的操作 一、时间序列基础 import numpy as np import pandas as pd from pandas import Series, DataFrame from datetime import datetime t1 = datetime(2009,10,20) # 创建时间序列 date_list = [ # 创建...

慕白博客 1433

Unity开发微信小游戏,使用Addressables管理游戏资源(本地进行远程测试)

快速构建Unity微信小游戏 使用Addressables管理游戏资源 使用小皮助手在本地进行远程资源加载测试

the_vnas的博客 6389

【Java面试题汇总】JVM篇(2026版)

JVM内存模型、双亲委派模型、类加载机制、内存溢出、垃圾回收机制、内存泄漏、垃圾回收流程、垃圾回收器、G1、CMS、JVM调优

种一棵树最好的时间是十年前,其次是现在 3万+

【手把手教你】Python处理金融数据

时间序列分析之日期处理 import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline #正常显示画图时出现的中文和负号 from pylab import mpl mpl.rcParams['font.sans-serif']=['SimHei'] mpl.rcParams['axes.unicode_minus']=False datetime处理日期 pyth.

childboy的博客 1773

最强AI插件Augment,适配idea、vscode,对标cursor!

Augment是一款新兴的AI辅助编码工具,能够无缝集成到IDEA和VS Code等主流IDE中,直接对标专业AI编码工具Cursor。其核心优势包括多IDE适配、无缝集成、代码理解与生成以及对话式编程体验。Augment通过插件形式保留原IDE功能和快捷键习惯,降低学习成本,同时提供深度理解项目上下文和生成高质量代码的能力。此外,Augment还具备审查变更、检查点、代理与代理自动等核心功能,支持从简单配置更改到复杂功能实现的各种开发任务。Augment代表了AI辅助编程工具的新方向,通过增强开发者熟悉的

todoitbo的博客 1万+

关于pandas的时间序列中的freq频率参数如何设置的官方参考说明【以date_range方法中的freq参数举例】

# 以季度Q【季度为频率】生成13个时间 x = pd.period_range("2019-01", periods=13, freq="Q") # 以季度Q【年为频率】生成13个时间 x = pd.period_range("2019-01", periods=13, freq="Y") # 以季度Q【2个月为频率】生成13个时间 x = pd.period_range("2019-01...

weixin_43343144的博客 2万+

谁还攥着旧的类加载器:Metaspace OOM 的元数据记账、类卸载条件与泄漏定位解析

MetaSpace区是JVM内存管理中的关键部分,负责存储类元数据。随着Java 8的推出,MetaSpace取代了PermGen区,但其灵活性也带来了新的挑战,尤其是在动态类加载和频繁类更新的场景下,容易导致MetaSpace内存溢出(OOM)问题。本文探讨了MetaSpace OOM的根本原因,包括类加载器泄漏、内存管理不当和GC效率低下等,并提供了一系列调优策略和解决方案,帮助开发者有效排查和防止此类问题的发生,确保应用程序的稳定性和高可用性。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 15万+

天龙八部TLBB系列 - 网单服务端各目录文件说明【超详细】

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等) --- 天龙八部服务端各目录详细说明

空名先生 7619

DataWhale组队学习pandas task02

Datawhale pandas组队学习 task02(下:练习)

weixin_40876195的博客 1044

【ARM Trace32(劳特巴赫) 高级篇 20 -- SNOOPer 使用介绍】

在 Lauterbach TRACE32 调试系统中,Snooper是一种特殊的监视工具,它能够在不中断处理器执行的情况下监视和记录特定内存地址的数据变化。这对于系统级调试、性能分析、数据流监视以及实时系统的问题追踪特别有用,尤其是在无法使用中断的情况下。当你设置了一个或多个Snooper时,TRACE32 硬件将不断地监视指定的内存地址,一旦发生了读写操作,就会将相关信息记录下来。这样你就可以看到某个地址的数据是什么时候以及如何被修改的,而不会影响目标系统的运行。

CodingCos的博客 2763

pandas组队学习task04

DataWhale组队学习task04 知识点 import pandas as pd import numpy as np path = r"C:\Users\yongx\Desktop\data" df = pd.read_csv(path +'\\learn_pandas.csv') #groupby 分组可直接通过列中按照名字获取,也可通过一定逻辑来分组 # 根据学生体重是否超过总体均值来分组,同时计算身高的均值 condition = df.Weight > df.Weight.m

qq_41834327的博客 186

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Pandas组队学习Task05

Pandas组队学习Task05 import pandas as pd import numpy as np path = r"C:\Users\yongx\Desktop\data" 长宽表的变形 当一个特征元素值作为列向量时为长表, 作为列名时为宽表 两种表信息信息上完全等价,包含相同的身高统计数值 # 长表 pd.DataFrame({'Gender':['F','F','M','M'], 'Height' : [163,160,175,180]})

qq_41834327的博客 379

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

pandas组队学习 task10-时间序列

pandas组队学习 task-10 import pandas as pd import numpy as np path = r'C:\Users\yongx\Desktop\data' 时序中的基本对象 时间戳(Data times):表示时刻的特殊字符串,如’2020-9-7 08:00:00’.pandas中称之为Timestamp.由时间戳元素构成的序列可以组成DatetimeIndex,当将其放入Series中,Series的类型将变为datetime64[ns],同时当涉及时区时为da

qq_41834327的博客 629

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

pandas组队学习-Task2 pandas的各种索引操作

1.学习内容 1.了解pandas支持的各种索引操作 2.了解pandas对索引的设置 3.了解pandas的索引函数 4.利用pandas的索引操作对数据进行处理和抽样 本项目参见https://github.com/datawhalechina/team-learning/tree/master/Pandas%E6%95%99%E7%A8%8B%EF%BC%88%E4%B8...

Zee_Chao的博客 1978

pandas组队学习-task07

import numpy as np import pandas as pd path = r'C:\Users\yongx\Desktop\data' 缺失值的统计和删除 缺失数据的统计 通过使用isna和isnull来查看每个单元格是否有缺失,同时结合mean函数求得每列缺失值的比例. 针对某列或某行统计缺失值时使用Series上的isna或notna而进行布尔索引 同时对若干个列检索全部缺失或存在缺失的行时通过使用isna,notna和all,any函数的组合实现对应功能 df = pd.re

qq_41834327的博客 329

十二月组队学习!

↑↑↑关注后"星标"Datawhale每日干货&每月组队学习,不错过Datawhale学习开源贡献:Datawhale团队今年最后一次组队学习,包含SQL...

Datawhale 364

pandas组队学习-Task1 pandas的基本操作

1.学习内容 1.了解如何用pandas保存和读取不同文件类型的数据 2.了解如何使用pandas的两个基本数据结构及其操作 本项目参见https://github.com/datawhalechina/team-learning/tree/master/Pandas%E6%95%99%E7%A8%8B%EF%BC%88%E4%B8%8A%EF%BC%89 2.准备工作 首先,需...

Zee_Chao的博客 1410

pandas学习task11综合任务

这是在datawhale学习小组学习pandas的最后综合练习,以下是学习笔记,仅供参考,不喜勿喷,笔者比较菜还在肝第二题,先把题目放出来,大家一块学习。 DataWhale Task Special & Task 11 综合练习 import pandas as pd import numpy as np 任务一企业收入的多样性 【题目描述】一个企业的产业收入多样性可以仿照信息熵的概念来定义收入熵指标:其中 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9p44b

qq_36559719的博客 390

Pandas基础学习(下) Task04:时序数据(知识梳理脑图+全部资源教程)

之前跟随Pandas(上)学习,收获良多,这次开了下的组队学习,迫不及待的加入了。Datawhale是一个很好的开源组织,会组织很多免费的知识学习。 附上本次组队学习的计划和教程资料,即使没有当时加入组队学习,有兴趣的话从现在开始学习也不晚哦~ 现在学习喜欢用脑图的方式,知识点清晰明了,易于查找和复习,希望也可以帮助大家梳理知识脉络。

RexT1的博客 393

【Task Special】Pandas之综合练习

前言 本次打卡用于巩固知识 Mission01 企业收入的多样性 题目:一个企业的产业收入多样性可以仿照信息熵的概念来定义收入熵指标: 其中pi是企业该年某产业收入额占该年所有产业总收入的比重。在Company.csv中存有需要计算的企业和年份,在Company_data.csv中存有企业、各类收入额和收入年份的信息。现请利用后一张表中的数据,在前一张表中增加一列表示该公司该年份的收入熵指标 I。 第一步,观察数据: df1 = pd.read_csv('./data/mission01/Company.

Xiao_Spring的博客 1763

Data Whale第20期组队学习 Pandas学习—第一次综合练习

Data Whale第20期组队学习 Pandas学习—Task Special & 综合练习一、企业收入的多样性二、组队学习信息表的变换三、美国大选投票情况参考文献 一、企业收入的多样性 【题目描述】一个企业的产业收入多样性可以仿照信息熵的概念来定义收入熵指标: I=−∑ip(xi)log(p(xi))I=-\sum_{i} p(x_i)log(p(x_i))I=−i∑​p(xi​)log(p(xi​)) 其中p(xi)p(x_i)p(xi​)是企业该年某产业收入额占该年所有产业总收入的比重。在

chutu2018的博客 453

Datawhale组队学习(Pandas) task10-时序数据

时间戳 单独时间点即为时间戳,pandas中称为Timestamp,一系列时间戳可以组成DatetimeIndex Timestamp的构造与属性 import numpy as np import pandas as pd ts = pd.Timestamp('2020-1-1 08:10:30') ts Timestamp('2020-01-01 08:10:30') # 通过 year, month, day, hour, min, second 可以获取具体的数值 ts.year # 20

mintminty的博客 357

pandas组队学习-Task4 用pandas对表格进行变形

1.学习内容 1.了解透视表的构造与还原 2.了解哑变量的生成 本项目参见https://github.com/datawhalechina/team-learning/tree/master/Pandas%E6%95%99%E7%A8%8B%EF%BC%88%E4%B8%8A%EF%BC%89 2.准备工作 import numpy as np import pandas a...

Zee_Chao的博客 756
上一篇: CS224N(NLP)组队学习-L2 Word Vectors2 and Word Senses
下一篇: CS224N(NLP)组队学习-L12 Information from Parts of Words: Subword Models
Zee_Chao
博客等级 码龄11年 168粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值