2016-09-06 10 views
0

データフレームから名詞を抽出したいと思います。私は結果内の角括弧を削除する方法

import pandas as pd 
import nltk 
from nltk.tag import pos_tag 
df = pd.DataFrame({'pos': ['noun', 'Alice', 'good', 'well', 'city']}) 
noun=[] 
for index, row in df.iterrows(): 
    noun.append([word for word,pos in pos_tag(row) if pos == 'NN']) 
df['noun'] = noun 

以下のようにしてくださいと私は私が使用DF [ '名詞']

0  [noun] 
1 [Alice] 
2   [] 
3   [] 
4  [city] 

を取得する正規表現

df['noun'].replace('[^a-zA-Z0-9]', '', regex = True) 

と再び

0  [noun] 
1 [Alice] 
2   [] 
3   [] 
4  [city] 
Name: noun, dtype: object 

間違って何ですか?

答えて

2

ブラケットは、データフレームの各セルにリストがあることを意味します。あなたが唯一の要素は、各リストに最大であることを確認している場合は、名詞列にstrを使用し、最初の要素を抽出することができます。

df['noun'] = df.noun.str[0] 

df 
# pos noun 
#0 noun noun 
#1 Alice Alice 
#2 good NaN 
#3 well NaN 
#4 city city 
+0

複数の要素は何がありますか? – Enthusiast

関連する問題