- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章NumPy.npy与pandas DataFrame的实例讲解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
用CSV格式来保存文件是个不错的主意,因为大部分程序设计语言和应用程序都能处理这种格式,所以交流起来非常方便。然而这种格式的存储效率不是很高,原因是CSV及其他纯文本格式中含有大量空白符;而后来发明的一些文件格式,如zip、bzip和gzip等,压缩率则有了显著提升.
首先导入模块:
1
2
3
4
5
6
7
|
In [
1
]:
import
numpy as np
In [
2
]:
import
pandas as pd
In [
3
]:
from
tempfile
import
NamedTemporaryFile
In [
4
]:
from
os.path
import
getsize
|
这里我们将使用Python标准的NamedTemporaryFile来存储数据,这些临时文件随后会自动删除.
接下来获取CSV文件格式的大小:
1
2
3
4
5
6
7
8
9
10
|
In [
5
]: np.random.seed(
42
)
In [
6
]: a
=
np.random.randn(
365
,
4
)
In [
7
]: tmpf
=
NamedTemporaryFile()
In [
8
]: np.savetxt(tmpf,a,delimiter
=
','
)
In [
9
]:
print
(
"Size CSV file"
,getsize(tmpf.name))
Size CSV
file
36693
|
下面首先以NumPy.npy格式来保存该数组,随后载入内存,并检查数组的形状以及.npy文件的大小:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
In [
10
]: tmpf
=
NamedTemporaryFile()
In [
11
]: np.save(tmpf,a)
In [
12
]: tmpf.seek(
0
)
Out[
12
]:
0
In [
13
]: loaded
=
np.load(tmpf)
In [
14
]:
print
(
"Shape"
,loaded.shape)
Shape (
365
,
4
)
In [
15
]:
print
(
"Size .npy file"
,getsize(tmpf.name))
Size .npy
file
11760
|
.npy文件的大小只有CSV文件的三分之一左右。实际上,利用Python可以存储任意复杂的数据结构。也可以序列化格式来存储pandas的DataFrame或者Series数据结构 。
在Python中,pickle是将Python对象存储到磁盘或其他介质时采用的一种格式,这个格式化的过程叫做序列化。之后,我们可以从存储器中重建该Python对象,这个逆过程称为反序列化。并非所有的Python对象都能够序列化;不过借助诸如dill之列的模块,可以将更多种类的Python对象序列化.
首先用前面生成的NumPy数组创建一个DataFame,接着用to_pickle()方法将其写入一个pickle对象中,然后用read_pickle()函数从这个pickle对象中检索该DataFrame:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
In [
16
]: tmpf.name
Out[
16
]:
'/tmp/tmpyy06safp'
In [
17
]: df
=
pd.DataFrame(a)
In [
18
]: df.to_pickle(tmpf.name) 是将DataFrame()写入到
/
tmp
/
tmpyy06safp中
In [
19
]:
print
(
"Size pickled dataframes"
,getsize(tmpf.name))
Size pickled dataframes
12250
In [
20
]: tmpf.name
Out[
20
]:
'/tmp/tmpyy06safp'
In [
21
]:
print
(
"DF from pickle\n"
,pd.read_pickle(tmpf.name))
DF
from
pickle
0
1
2
3
0
0.496714
-
0.138264
0.647689
1.523030
1
-
0.234153
-
0.234137
1.579213
0.767435
2
-
0.469474
0.542560
-
0.463418
-
0.465730
3
0.241962
-
1.913280
-
1.724918
-
0.562288
4
-
1.012831
0.314247
-
0.908024
-
1.412304
5
1.465649
-
0.225776
0.067528
-
1.424748
6
-
0.544383
0.110923
-
1.150994
0.375698
7
-
0.600639
-
0.291694
-
0.601707
1.852278
8
-
0.013497
-
1.057711
0.822545
-
1.220844
9
0.208864
-
1.959670
-
1.328186
0.196861
10
0.738467
0.171368
-
0.115648
-
0.301104
11
-
1.478522
-
0.719844
-
0.460639
1.057122
12
0.343618
-
1.763040
0.324084
-
0.385082
13
-
0.676922
0.611676
1.031000
0.931280
14
-
0.839218
-
0.309212
0.331263
0.975545
15
-
0.479174
-
0.185659
-
1.106335
-
1.196207
16
0.812526
1.356240
-
0.072010
1.003533
17
0.361636
-
0.645120
0.361396
1.538037
18
-
0.035826
1.564644
-
2.619745
0.821903
19
0.087047
-
0.299007
0.091761
-
1.987569
20
-
0.219672
0.357113
1.477894
-
0.518270
21
-
0.808494
-
0.501757
0.915402
0.328751
22
-
0.529760
0.513267
0.097078
0.968645
23
-
0.702053
-
0.327662
-
0.392108
-
1.463515
24
0.296120
0.261055
0.005113
-
0.234587
25
-
1.415371
-
0.420645
-
0.342715
-
0.802277
26
-
0.161286
0.404051
1.886186
0.174578
27
0.257550
-
0.074446
-
1.918771
-
0.026514
28
0.060230
2.463242
-
0.192361
0.301547
29
-
0.034712
-
1.168678
1.142823
0.751933
.. ... ... ... ...
335
0.160574
0.003046
0.436938
1.190646
336
0.949554
-
1.484898
-
2.553921
0.934320
337
-
1.366879
-
0.224765
-
1.170113
-
1.801980
338
0.541463
0.759155
-
0.576510
-
2.591042
339
-
0.546244
0.391804
-
1.478912
0.183360
340
-
0.015310
0.579291
0.119580
-
0.973069
341
1.196572
-
0.158530
-
0.027305
-
0.933268
342
-
0.443282
-
0.884803
-
0.172946
1.711708
343
-
1.371901
-
1.613561
1.471170
-
0.209324
344
-
0.669073
1.039905
-
0.605616
1.826010
345
0.677926
-
0.487911
2.157308
-
0.605715
346
0.742095
0.299293
1.301741
1.561511
347
0.032004
-
0.753418
0.459972
-
0.677715
348
2.013387
0.136535
-
0.365322
0.184680
349
-
1.347126
-
0.971614
1.200414
-
0.656894
350
-
1.046911
0.536653
1.185704
0.718953
351
0.996048
-
0.756795
-
1.421811
1.501334
352
-
0.322680
-
0.250833
1.328194
0.556230
353
0.455888
2.165002
-
0.643518
0.927840
354
0.057013
0.268592
1.528468
0.507836
355
0.538296
1.072507
-
0.364953
-
0.839210
356
-
1.044809
-
1.966357
2.056207
-
1.103208
357
-
0.221254
-
0.276813
0.307407
0.815737
358
0.860473
-
0.583077
-
0.167122
0.282580
359
-
0.248691
1.607346
0.490975
0.734878
360
0.662881
1.173474
0.181022
-
1.296832
361
0.399688
-
0.651357
-
0.528617
0.586364
362
1.238283
0.021272
0.308833
1.702215
363
0.240753
2.601683
0.565510
-
1.760763
364
0.753342
0.381158
1.289753
0.673181
[
365
rows x
4
columns]
|
以上这篇NumPy.npy与pandas DataFrame的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/qq_24683561/article/details/54573938 。
最后此篇关于NumPy.npy与pandas DataFrame的实例讲解的文章就讲到这里了,如果你想了解更多关于NumPy.npy与pandas DataFrame的实例讲解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
pandas.crosstab 和 Pandas 数据透视表似乎都提供了完全相同的功能。有什么不同吗? 最佳答案 pivot_table没有 normalize争论,不幸的是。 在 crosstab
我能找到的最接近的答案似乎太复杂:How I can create an interval column in pandas? 如果我有一个如下所示的 pandas 数据框: +-------+ |
这是我用来将某一行的一列值移动到同一行的另一列的当前代码: #Move 2014/15 column ValB to column ValA df.loc[(df.Survey_year == 201
我有一个以下格式的 Pandas 数据框: df = pd.DataFrame({'a' : [0,1,2,3,4,5,6], 'b' : [-0.5, 0.0, 1.0, 1.2, 1.4,
所以我有这两个数据框,我想得到一个新的数据框,它由两个数据框的行的克罗内克积组成。正确的做法是什么? 举个例子:数据框1 c1 c2 0 10 100 1 11 110 2 12
TL;DR:在 pandas 中,如何绘制条形图以使其 x 轴刻度标签看起来像折线图? 我制作了一个间隔均匀的时间序列(每天一个项目),并且可以像这样很好地绘制它: intensity[350:450
我有以下两个时间列,“Time1”和“Time2”。我必须计算 Pandas 中的“差异”列,即 (Time2-Time1): Time1 Time2
从这个 df 去的正确方法是什么: >>> df=pd.DataFrame({'a':['jeff','bob','jill'], 'b':['bob','jeff','mike']}) >>> df
我想按周从 Pandas 框架中的列中累积计算唯一值。例如,假设我有这样的数据: df = pd.DataFrame({'user_id':[1,1,1,2,2,2],'week':[1,1,2,1,
数据透视表的表示形式看起来不像我在寻找的东西,更具体地说,结果行的顺序。 我不知道如何以正确的方式进行更改。 df示例: test_df = pd.DataFrame({'name':['name_1
我有一个数据框,如下所示。 Category Actual Predicted 1 1 1 1 0
我有一个 df,如下所示。 df: ID open_date limit 1 2020-06-03 100 1 2020-06-23 500
我有一个 df ,其中包含与唯一值关联的各种字符串。对于这些唯一值,我想删除不等于单独列表的行,最后一行除外。 下面使用 Label 中的各种字符串值与 Item 相关联.所以对于每个唯一的 Item
考虑以下具有相同名称的列的数据框(显然,这确实发生了,目前我有一个像这样的数据集!:() >>> df = pd.DataFrame({"a":range(10,15),"b":range(5,10)
我在 Pandas 中有一个 DF,它看起来像: Letters Numbers A 1 A 3 A 2 A 1 B 1 B 2
如何减去两列之间的时间并将其转换为分钟 Date Time Ordered Time Delivered 0 1/11/19 9:25:00 am 10:58:00 am
我试图理解 pandas 中的下/上百分位数计算,但有点困惑。这是它的示例代码和输出。 test = pd.Series([7, 15, 36, 39, 40, 41]) test.describe(
我有一个多索引数据框,如下所示: TQ bought HT Detailed Instru
我需要从包含值“低”,“中”或“高”的数据框列创建直方图。当我尝试执行通常的df.column.hist()时,出现以下错误。 ex3.Severity.value_counts() Out[85]:
我试图根据另一列的长度对一列进行子串,但结果集是 NaN .我究竟做错了什么? import pandas as pd df = pd.DataFrame([['abcdefghi','xyz'],
我是一名优秀的程序员,十分优秀!