2012-03-08 11 views
22

私はベクトル、データフレームなどのRデータ保持者に精通していますが、テキスト解析を行う必要があります。そうするためにPythonには良い設定がいくつかあります。私の質問は、Pythonがどのようにデータを保持しているかについての説明をどこで見つけることができるかです。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 $テキストまたはdf1[,3]を使用したいと私は特定のセルを望んでいた場合、私はdf1[1,3]を使用することができます。

私は、Pythonにデータを読み込む方法を感じていますが、テーブルのような構造をどのように扱うかは気になりません。

これはPython初心者のためにどうやって作業することをお勧めしますか?

+0

Pythonはに相当するものを持っていない以下のようにデータフレームをintialiseパンダ

ですデータフレーム –

+4

@DavidHeffernan [pandas](http://pandas.pydata.org/)のものはどうですか?それは終わりではありませんか? – joran

+2

@joranそれはサードパーティーです。私は、Rデータフレームが組み込まれている方法で何も組み込まれていないということを意味していると思います。 –

答えて

30

ルック。

8

私はこれは私が使ったことがない「R」に変換する方法もわからないんだけど、Pythonで、これは私がそれに近づくだろうかです:

lines = list() 
with open('data.txt','r') as f: 
    for line in f: 
     lines.append(line.split()) 

Pythonのリスト内のすべてをお読みになること。リストはゼロベースです。二行目からテキスト列を取得するには、次の

print lines[1][2] 

その行のスコア:pandasライブラリ内DataFrameオブジェクトで

print lines[1][3] 
7

パンダのDATAFRAMEに加えて、あなたは(http://thread.gmane.org/gmane.comp.python.rpy/1344から)rpy2ライブラリを使用することができます。私は過去に使用した

import array 
import rpy2.robjects as ro 

d = dict(x = array.array('i', [1,2]), y = array.array('i', [2,3])) 
dataf = ro.r['data.frame'](**d) 
4

1つのオプションは、あなたがで行のデータを参照することができますされ、csv.DictReaderです名前(各行はdictとなる):

import csv 
with open('data.txt') as f: 
    reader = csv.DictReader(f, delimiter = '\t') 
    for row in reader: 
     print row 

出力:

{'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'} 
11

pandasライブラリの使用に関するUllrich氏の答えは、Rデータフレームに最も近いアプローチです。ただし、numpy arrayを使用して非常によく似た機能を得ることができ、必要に応じてデータタイプをobjectに設定できます。新しいバージョンのnumpyはdata.frameに似ているfield name capabilitiesを持っていますが、そのインデックス付けは実際にはRより幾分強力であり、オブジェクトを含む能力はRができることをはるかに超えています。

手作業によっては、Rとnumpyの両方を使用します。 Rは数式と組み込みの統計情報の方が優れています。 Pythonコードは、他のシステムとの接続が容易でメンテナンスが容易です。

編集:今numpyの追加ノートは、フィールド名の能力を持っているのpythonにおけるRの

+0

Rの 'data.frame'に' list'カラムを入れることができます。 'list'カラムの各要素は、データオブジェクト、関数などを含む好きなものにすることができます。 –

0

同等あなたは

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

print df.head() 
関連する問題