R的名称是否等于Pandas df.columns?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R的名称是否等于Pandas df.columns?相关的知识,希望对你有一定的参考价值。

我承担了将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脚本中用于执行和查看数据格式的数据库。

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

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

list(my_dataframe.columns.values)

这两个相等吗?还是我认为这是错误的?

答案

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']

以上是关于R的名称是否等于Pandas df.columns?的主要内容,如果未能解决你的问题,请参考以下文章

在 Pandas 中重命名多个列

pandas DataFrame 列未显示在 df.columns [重复]

Python / Pandas:重命名非常大的数据文件的列

pandas常用函数

pandas

pandas