我有一个 pyspark 数据框,如下所示。
+---+-------+--------+
|age|balance|duration|
+---+-------+--------+
| 2| 2143| 261|
| 44| 29| 151|
| 33| 2| 76|
| 50| 1506| 92|
| 33| 1| 198|
| 35| 231| 139|
| 28| 447| 217|
| 2| 2| 380|
| 58| 121| 50|
| 43| 693| 55|
| 41| 270| 222|
| 50| 390| 137|
| 53| 6| 517|
| 58| 71| 71|
| 57| 162| 174|
| 40| 229| 353|
| 45| 13| 98|
| 57| 52| 38|
| 3| …
Run Code Online (Sandbox Code Playgroud) 我有一个维度为 1 亿条记录和 100 列的矩阵。
现在我想将该矩阵乘以 rowwise。
我的矩阵乘法示例代码是
df<-as.matrix(mtcars)
result<-apply(df,1,prod)
Run Code Online (Sandbox Code Playgroud)
就我而言,上述语法非常慢。
我在Rfast包中尝试了rowprods函数。
result<-rowprods(mtcars)
Run Code Online (Sandbox Code Playgroud)
但是上述功能给了我空间问题。
注意:我的系统中有 8 GB 内存。
我正在尝试将 R 代码的一部分转换为 Python。在这个过程中,我遇到了一些问题。
我有一个 R 代码,如下所示。在这里,我将 R 输出保存为.rdata格式。
nms <- names(mtcars)
save(nms,file="mtcars_nms.rdata")
Run Code Online (Sandbox Code Playgroud)
现在我必须将 mtcars_nms.rdata 加载到 Python 中。我导入了 rpy2 模块。然后我尝试将文件加载到 python 工作区中。但无法看到实际输出。
我使用以下 python 代码导入.rdata。
import pandas as pd
from rpy2.robjects import r,pandas2ri
pandas2ri.activate()
robj = r.load('mtcars_nms.rdata')
robj
Run Code Online (Sandbox Code Playgroud)
我的python输出是
R object with classes: ('character',) mapped to:
<StrVector - Python:0x000001A5B9E5A288 / R:0x000001A5B9E91678>
['mtcars_nms']
Run Code Online (Sandbox Code Playgroud)
现在我的目标是从 mtcars_nms 中提取信息。
在 R 中,我们可以使用
load("mtcars_nms.rdata");
get('mtcars_nms')
Run Code Online (Sandbox Code Playgroud)
现在我想在 Python 中做同样的事情。
我想通过从开始日期创建n 个日期的序列来复制数据框中的行。
我的输入文件格式。
col1 col2 date
1 5 2015-07-15
2 6 2015-07-20
3 7 2015-07-25
Run Code Online (Sandbox Code Playgroud)
我的预期输出。
col1 col2 date
1 5 2015-07-15
1 5 2015-07-16
1 5 2015-07-17
1 5 2015-07-18
1 5 2015-07-19
2 6 2015-07-20
2 6 2015-07-21
2 6 2015-07-22
2 6 2015-07-23
2 6 2015-07-24
3 7 2015-07-25
3 7 2015-07-26
3 7 2015-07-27
3 7 2015-07-28
3 7 2015-07-29
Run Code Online (Sandbox Code Playgroud)
我必须创建一个有日差的日期序列。
提前致谢。