小编Bay*_*rSe的帖子

熊猫:删除列并释放内存

我正在处理大约20,000,000行和4列的大型数据集。不幸的是,我机器上的可用内存(〜16GB)不足。

示例(时间是自午夜以来的秒数):

           Date   Time   Price     Vol
0      20010102  34222  51.750  227900
1      20010102  34234  51.750    5600
2      20010102  34236  51.875   14400
Run Code Online (Sandbox Code Playgroud)

然后,将数据集转换为适当的时间序列对象:

                         Date   Time   Price     Vol
2001-01-02 09:30:22  20010102  34222  51.750  227900
2001-01-02 09:30:34  20010102  34234  51.750    5600
2001-01-02 09:30:36  20010102  34236  51.875   14400
2001-01-02 09:31:03  20010102  34263  51.750    2200
Run Code Online (Sandbox Code Playgroud)

要释放内存,我想删除多余的“日期和时间”列。我用.drop()方法来做,但是没有释放内存。我也尝试过gc.collect()事后打电话,但这也没有帮助。

这是我用来处理所描述动作的代码。该del部件释放内存,但不释放drop部件。

# Store date and time components
m, s = divmod(data.Time.values, 60)
h, m = divmod(m, 60)
s, m, h = …
Run Code Online (Sandbox Code Playgroud)

python pandas

8
推荐指数
1
解决办法
1473
查看次数

Numpy:从数组获取索引在另一个数组中的值

我有一个包含一些值的mx1数组a.此外,我有一个nxk数组,比如b,包含0到m之间的索引.

例:

a = np.array((0.1, 0.2, 0.3))
b = np.random.randint(0, 3, (4, 4))
Run Code Online (Sandbox Code Playgroud)

对于b中的每个索引值,我想从a获得相应的值.我可以用循环来做到这一点:

c = np.zeros_like(b).astype('float')
n, k = b.shape
for i in range(n):
    for j in range(k):
        c[i, j] = a[b[i, j]]
Run Code Online (Sandbox Code Playgroud)

是否有任何内置的numpy功能或技巧更优雅?这种方法对我来说有点愚蠢.PS:最初,a和b是Pandas对象,如果有帮助的话.

python numpy pandas

6
推荐指数
1
解决办法
1690
查看次数

分类整数数据的最快方法

我在下表中给出了一个映射:

Input  Output
<4     0
5      0.4
6      0.5
7      0.65
8      0.75
9      0.85
>=10   1
Run Code Online (Sandbox Code Playgroud)

到现在为止,我写了3个版本:

k1 <- function(h) {
  if (h <= 4) { k <- 0
  } else if (h == 5) { k <- 0.4
  } else if (h == 6) { k <- 0.5
  } else if (h == 7) { k <- 0.65
  } else if (h == 8) { k <- 0.75
  } else if (h == 9) { k <- 0.85 …
Run Code Online (Sandbox Code Playgroud)

r

6
推荐指数
2
解决办法
308
查看次数

替换数据类对象中的属性

我想替换数据类实例的属性,类似于namedtuple._replace(),即制作原始对象的更改副本:

from dataclasses import dataclass
from collections import namedtuple

U = namedtuple("U", "x")

@dataclass
class V:
    x: int

u = U(x=1)
u_ = u._replace(x=-1)
v = V(x=1)

print(u)
print(u_)
print(v)
Run Code Online (Sandbox Code Playgroud)

返回:

U(x=1)
U(x=-1)
V(x=1)
Run Code Online (Sandbox Code Playgroud)

如何在数据类对象中模仿此功能?

python python-3.7 python-dataclasses

6
推荐指数
1
解决办法
1681
查看次数

docker-compose 文件变得太长

我最近开始将我的自托管服务迁移到docker. 为了简化维护,我使用docker-compose. 一些容器相互依赖,另一些是独立的。

有了 20 多个容器和近 500 行代码,可维护性现在已经下降。

有没有保留一个大docker-compose文件的好方法?

docker docker-compose

5
推荐指数
1
解决办法
1160
查看次数

R: multicool 编译失败

我想rugarch在运行 Red Hat 7.3 和 R 版本 3.3.1 的系统上安装该库。不幸的是,我没有机器的管理员权限。

rugarch由于编译错误,安装失败multicool。运行install.packages('multicool')以错误消息终止:

compilation aborted for multicool.cpp (code 2)
make: *** [multicool.o] Error 2
ERROR: compilation failed for package ‘multicool’
Run Code Online (Sandbox Code Playgroud)

这是完整的输出:

> install.packages('multicool')
Installing package into ‘/pfs/data1/home/kn/kn_kn/kn_pop260093/R/x86_64-pc-linux-gnu-library/3.3’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/multicool_0.1-10.tar.gz'
Content type 'unknown' length 11387 bytes (11 KB)
==================================================
downloaded 11 KB

* installing *source* package ‘multicool’ ...
** package ‘multicool’ successfully unpacked and MD5 sums checked
** libs
icpc -I/opt/bwhpc/common/math/R/3.3.1-mkl-11.2.3-intel-15.0_O2_pragma_noopt/lib64/R/include -DNDEBUG …
Run Code Online (Sandbox Code Playgroud)

redhat compiler-errors r compilation

3
推荐指数
1
解决办法
560
查看次数

通过R在终端执行命令:如何正确引用?

我想在远程服务器上执行一行:

ssh user@machine 'for i in 1 2; do echo "$i"; done'
Run Code Online (Sandbox Code Playgroud)

如何使用命令通过R将此命令发送到服务器system()?问题是system()需要一个用引号括起来的字符串,如果我引用上面的行,那么引号会相互抵消.

r

1
推荐指数
1
解决办法
106
查看次数

使用空格和逗号更正路径的bash语法

我使用rsync备份数据.现在我在备份包含逗号和空格字符的文件夹时遇到了麻烦.我使用一个带有源名称的数组:

dirs=(
    /home/user/Desktop
    ...
    /home/user/foo, bar
)
Run Code Online (Sandbox Code Playgroud)

最后一个条目的正确语法是什么?

bash rsync

0
推荐指数
1
解决办法
162
查看次数