2017-02-04 125 views
0

我正在分析社交網絡的用戶個人資料興趣。我已經從社交網絡數據庫的導出中生成了具有用戶ID,姓名和用戶興趣的數據框。我應該只在「用戶興趣」列中獲取關鍵字。但實際上,我得到了關鍵字和用戶ID的組合...數據清理:如何從熊貓數據框列中刪除某些值?

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... 

我想提出一些數據清理在列interests只保留關鍵字的用戶興趣列。

今天,我有這樣的信息:

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

我會嘗試列表理解去除字典值,然後pd.Replace刪除前面的'你'(如果我正確理解問題)。 –

回答

0

如果我「M正確讀取的問題,你有你的interests列什麼是你想要得到的具體值的Python的dictlist S的字符串表示如果是這樣,你可以使用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