2016-10-09 9 views
0

私には、wikiと呼ばれるPythonデータフレームがあり、一部の人々のためのウィキペディア情報があります。 各行は異なる人物で、列は 'name'、 'text'、 'word_count'です。 'text'の情報は辞書フォーム(キー、値)に入れられ、 'word_count'列に情報が作成されます。Python、データフレーム内の辞書、ソート

私は、その後、バラク・オバマに関連する行を抽出したい場合:

row = wiki[wiki['name'] == 'Barack Obama'] 

、私は最も人気のある単語をしたいと思います。私が行うとき:

type(adf)=<class 'pandas.core.frame.DataFrame'> 

と私は

adf.values 

をすれば、私が得る:

adf=row[['word_count']] 

私はそれを見るので、私は別のデータフレームを取得

array([[ {u'operations': 1, u'represent': 1, u'office': 2, ..., u'began': 1}], dtype=object) 

しかし、 、私にとって非常に混乱しているのは、サイズが1であるということです

adf.size=1 

したがって、実際にキーと値を抽出する方法はわかりません。 adf.values[1]のようなものは機能しません。

最終的に、最も頻繁に出現する単語が最初に現れるように、word_countで情報を並べ替える必要があります。 しかし、データフレーム内の辞書の中にある情報にアクセスする方法を理解したいと思います...ここではタイプについて迷っています。私はプログラミングには新しくないが、私はPythonには比較的新しいです。

すべてのヘルプは非常に非常に多くの名前の列が一意である場合、あなたはDataFrameオブジェクトのインデックスに列を変更することができます

答えて

1

をいただければ幸いです:wiki.set_index("name", inplace=True)。次に値を得ることができます:wiki.at['Barack Obama', 'word_count']。あなたのコードで

row = wiki[wiki['name'] == 'Barack Obama'] 
adf = row[['word_count']] 

最初の行は、ここでは、データを取得するためにBOOL配列を使用した文書である:http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing

wikiDataFrameオブジェクトであり、そしてrowDataFrameオブジェクトであります名前列が一意の場合は1行のみです。

2行目はrowから列のリストを取得し、ここでの文書は次のとおりです。http://pandas.pydata.org/pandas-docs/stable/indexing.html#basics

あなたが唯一の1行1列にDataFrameを取得します。 http://pandas.pydata.org/pandas-docs/stable/indexing.html#fast-scalar-value-getting-and-setting

+0

はどうもありがとうございました、完璧に動作します:

そして、ここでは.at[]の文書であります! 私はその論理を理解していません。 wiki.at ['Barack Obama'、 'word_count']で情報を抽出することができるのはなぜですか 行[['word_count']] でこれまで試みたことはありませんでしたか?私がこれを理解するために読むことができる有用なものを知っていれば、それを私に指摘してもらえますか?あるいは、あなたがこれを詳述することができれば、本当に良いことになるかもしれません。 ありがとうございました – user3177938

+1

@ user3177938いくつかのドキュメントリンクを追加しました。確認してください。 – HYRY