我有一个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 …
我上周开始使用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一样吗?
谢谢