【问题标题】:Is R's names function equal to Pandas df.columns?R的名称功能是否等于Pandas df.columns?
【发布时间】:2019-10-30 08:56:19
【问题描述】:

我的任务是将 R 脚本转换为 Python。我正在尝试了解其功能。

脚本如下所述。

#get id for single_triad
id <- names(forecast_object_list[single_triad_index])

forecast_object_list 是从 R 的 by() 函数返回的东西。我不确定它是 R 中的 list 还是 dataframe

single_triad_indexfor 循环中的整数计数器。

这个 names() 函数实际上做了什么?

我无权访问 R 脚本中用于执行和查看数据格式的数据库。

经过一番研究,我了解到它在数据框中返回 标头http://www.endmemo.com/program/R/names.php

这是否意味着我可以使用 pandas 的 df.columns 从如下数据框中获取列名:

list(my_dataframe.columns.values)

这两个相等吗?还是我猜错了?

【问题讨论】:

  • 我不确定数据格式是什么,以及实际数据中有多少列,因为我现在无法访问。我尝试使用示例数据框并获得了列名。我只是想确保在转换过程中没有遗漏任何内容。

标签: python r pandas dataframe


【解决方案1】:

names() 返回对象元素的名称。例如,如果我们在以下每个元素上调用names,R 将返回[1] "a" "b"

ve <- c(a = 1, b = 2) # atomic vector
li <- list(a = 1, b = 2) # list
df <- data.frame(a = 1, b = 2) # data frame

为了您的目的,值得知道数据框只是一种特殊的列表 - is.list(li)is.list(df) 都将返回 TRUE。这意味着,根据您所做的工作,您通常不需要区分这两个数据对象。也就是说,有时存在差异,例如names() 适用于数据框和列表,colnames() 仅适用于数据框(和矩阵等)。这最终取决于可用的属性。

如果我们将上面的内容与 Python 进行比较,那么结果似乎是相同的。我认为主要区别在于names() 是可用于多种数据对象类型的通用访问器,而.columns 是Pandas DataFrame 对象的特定属性。

df = DataFrame({'a':[1], 'b':[2]})
df.columns.to_list()
# ['a', 'b']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 2020-12-30
    • 2020-09-07
    • 1970-01-01
    • 2021-12-29
    • 2010-11-28
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多