从R到Python,什么';python是数据帧的等价物吗?

从R到Python,什么';python是数据帧的等价物吗?,python,r,Python,R,我熟悉R数据持有者,如向量、数据帧等,但需要进行一些文本分析,而且python似乎有一些很好的设置。我的问题是,在哪里可以找到python如何保存数据的解释 具体地说,我在一个选项卡分隔的文件中有一个数据集,其中文本在第3列,我需要的数据评分在第4列 id1 id2 text score 123 889 "This is the text I need to read

我熟悉R数据持有者,如向量、数据帧等,但需要进行一些文本分析,而且python似乎有一些很好的设置。我的问题是,在哪里可以找到python如何保存数据的解释

具体地说,我在一个选项卡分隔的文件中有一个数据集,其中文本在第3列,我需要的数据评分在第4列

id1            id2            text                             score
123            889     "This is the text I need to read..."      88
234            778     "This is the text I need to read..."      78
345            667     "This is the text I need to read..."      91
在R中,我只需将其加载到名为
df1
的数据帧中,当我想要调用列时,我会使用df1$text或
df1[,3]
,如果我想要一个特定的单元格,我可以使用
df1[1,3]

我开始了解如何将数据读入python,而不是如何处理类似表的结构


对于python新手,您建议如何使用此工具

我不确定这是否能很好地转换为我从未使用过的“R”,但在Python中,我会这样处理:

lines = list()
with open('data.txt','r') as f:
  for line in f:
      lines.append(line.split())
这将读取python列表中的所有内容。列表是以零为基础的。要从第二行获取文本列,请执行以下操作:

print lines[1][2]
该行的分数为:

print lines[1][3]

查看库中的对象。

除了Panda的数据帧,您还可以使用rpy2库(从):


我过去使用过的一个选项是
csv.DictReader
,它允许您按名称引用一行中的数据(每行都成为
dict
):

输出:

{'text': 'This is the text I need to read...', 'score': '88', 'id2': '889', 'id1': '123'}
{'text': 'This is the text I need to read...', 'score': '78', 'id2': '778', 'id1': '234'}
{'text': 'This is the text I need to read...', 'score': '91', 'id2': '667', 'id1': '345'}

Ullrich先生使用该库的答案是最接近R数据帧的方法。但是,如果需要,您可以使用将数据类型设置为
object
,以获得极其相似的功能。较新版本的numpy与
data.frame
类似,它的索引功能实际上比R更强大,并且它包含对象的能力远远超出了R的能力

根据手头的任务,我同时使用R和numpy。使用公式和内置的统计数据时,R要好得多。Python代码更易于维护,也更容易连接到其他系统


编辑:添加了注意事项,numpy现在具有字段名功能

在python中与R等价的是Pandas

如下所示初始化数据帧

 import pandas as pd
 df = pd.read_csv("filename")

 print df.head()

Python没有与数据等价的东西frame@DavidHeffernan那东西呢?这不是(有意)接近吗?@joran那是第三方。我想我的意思是没有任何内置的方式,R的数据帧是内置的。R的
data.frame
可以包含
list
列。
列表
列的每个元素都可以是您喜欢的任何内容,包括数据对象、函数等。这就是您的意思吗?
{'text': 'This is the text I need to read...', 'score': '88', 'id2': '889', 'id1': '123'}
{'text': 'This is the text I need to read...', 'score': '78', 'id2': '778', 'id1': '234'}
{'text': 'This is the text I need to read...', 'score': '91', 'id2': '667', 'id1': '345'}
 import pandas as pd
 df = pd.read_csv("filename")

 print df.head()