小编Nor*_*ine的帖子

如何使用 rpy2 将数据框列转换为因子?

我有一个DataFramePython 中的 Pandas,我正在data.frame使用rpy2. 一些示例设置代码如下:

import pandas as pd
import rpy2.robjects as robjects
from rpy2.robjects import r, pandas2ri

df = pd.DataFrame({
    'col_1': ['a', 'b', 'c'], 
    'col_2': [1, 2, 3],
    'col_3': [2.3, 5.4, 3.8]
})

pandas2ri.activate()
r_df = pandas2ri.py2ri(df)
Run Code Online (Sandbox Code Playgroud)

col_2充满了整数值,并且正如预期的那样,在转换过程中,它被转换为 R 的int原子模式。我可以使用以下命令检查类(我理解这些类指示哪些函数可以应用于底层对象):

r.sapply(r_df, r['class'])
Run Code Online (Sandbox Code Playgroud)

然而,这个变量实际上是名义变量(无序分类)。因此,我需要将此列转换为一个因子。

在 RI 中,可以使用以下方法通过重新分配轻松地做到这一点:

r_df$col2 <- as.factor(r_df$col2)
Run Code Online (Sandbox Code Playgroud)

但是,我不确定使用的语法是否正确rpy2。我可以使用访问器方法访问该列rx2,并使用 将该列转换为一个因子FactorVector

 col2 = robjects.vectors.FactorVector(r_df.rx2('col_2'))
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法将其重新分配回原始数据框。将其重新分配回原始数据框的最佳方法是什么?有没有更好的方法来进行这种转换?谢谢

附加

我已经设法使用下面的代码转换col_2为 a factor,但感觉不是最佳答案,因为我必须查找所有列名称,使用 Python 方法而不是 R …

python r type-conversion dataframe rpy2

5
推荐指数
0
解决办法
1157
查看次数

在JavaScript中将数组附加到数组数组

我上周开始使用JavaScript来创建一些D3可视化,并且已经变得非常困难于只能是一个非常简单的任务.

我有不同国家的各种数据系列,每个都存储在数组中,例如

var uk = [1,2,3,4,5,6,7,8],
    us = [8,4,7,3,7,8,3,2],
    fr = [4,6,8,3,2,6,8,4];
Run Code Online (Sandbox Code Playgroud)

我想创建一个主数组,它包含所有这些单独的数组,而不是连接/合并,所以:

world = [uk, us, fr, etc]
Run Code Online (Sandbox Code Playgroud)

如何以这种方式添加数组,以便它们不会连接在一起?请注意,有数百个国家/地区,因此我无法手动输入它们,如上所述,我实际上是从单个csv文件中提取它们,因此可以在提取它们时轻松迭代它们.Array.push似乎和concat一样吗?

谢谢

javascript arrays

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

标签 统计

arrays ×1

dataframe ×1

javascript ×1

python ×1

r ×1

rpy2 ×1

type-conversion ×1