2017-02-04 25 views
0

私はソーシャルネットワークのユーザープロファイルの関心の分析に取り組んでいます。私は、ソーシャルネットワークデータベースのエクスポートからユーザID、名前、ユーザ関心のデータフレームを生成しました。私は「ユーザーの関心事」欄にキーワードを入力するだけでした。しかし実際には、私は、列interestsに清掃一部のデータのみをユーザ関心欄にキーワードを保つためにしたいと思います...データクリーニング:pandasデータフレーム列から特定の値を削除するにはどうすればよいですか?

User ID displayName interests 
0 5705952d0eb2063205ca1d3c Jane Catch [] 
1 5705e99ac391580e00ea87c9 Heidi Kent [{u'text': u'psychology', u'_id': {u'$oid': u'... 
2 5705efb6c391580e00ea87ca Rob Tuckinson [{u'text': u'learning', u'_id': {u'$oid': u'57... 

をキーワードやユーザーIDのミックスを得ました。

今日、私はこの情報を持っている:最初の行のために

User ID,displayName,interests 
"570df0f2a40cc20e00c15e09,Alejandra Zara,""[{u'text': u'pretend-play', u'_id': {u'$oid': u'570e57eba40cc20e00c161ea'}}, {u'text': u'autobiographical-memory', u'_id': {u'$oid': u'570e57eba40cc20e00c161e9'}}]""" 

を、私は、以下の情報を保持したいと思います:

"570df0f2a40cc20e00c15e09,Alejandra Zara,pretend-play', autobiographical-memory' 

データクリーニング技術の任意のアイデアを? たびに、私のような行ごとに異なる(ユーザIDに関連する情報を削除する必要があります。

u'_id': {u'$oid': u'570e57eba40cc20e00c161ea'}} 

と各キーワードの先頭に配置され{u'text': u()を削除

+0

私はdictの値を取り除くためにリスト内包を試してから、pd.Replaceを使って上記の 'u'を削除します(問題が正しく分かっていれば)。 –

答えて

0

どうか「正しく質問を読んM、どのようなあなたのinterests列を持っていることは、あなたが特定の値を取得したいからdict秒のPythonのlistの文字列表現ですもしそうなら、あなたはそれを解析するためにast.literal_evalを使用することができます。

In [24]: df 
Out[24]: 
        User ID  displayName \ 
0 570df0f2a40cc20e00c15e09 Alejandra Zara 

              interests 
0 [{u'text': u'pretend-play', u'_id': {u'$oid': ... 

In [25]: df['interests'].map(lambda x: ','.join(i['text'] for i in ast.literal_eval(x))) 
Out[25]: 
0 pretend-play,autobiographical-memory 
Name: interests, dtype: object 
+0

あなたの答えに感謝します。私はそれを使用しようとしましたが、このメッセージがあります:グローバル名 'ast'は定義されていません – Charlotte

+0

次に、モジュールをインポートする必要があります。 – fuglede

関連する問題