2016-03-31 17 views
0

私はpython dfでデータフレームを持っています。次のように文を列で分割してから、Pythonでデータフレームに追加する

その構造は次のとおりです。 -

Sentences     | Value 
This is my house   |  0 
My house is good   |  2 

。 。 。 。

ここで、列の文章を単語に分割し、これらの単語の前に文章の値を追加するためのパンダデータフレームを作成します。

出力は次のようにすべきである: -

Words | Value 
This | 0 
is | 0 
my | 0 
house | 0 
My | 2 
house | 2 
is | 2 
good | 2 

。 。 。

私は、文を分割する関数を使用しました。

def makeTermsFrom(msg): 
    return [m for m in msg.lower().split() if m] 

a = readMessagesFromFile("./data/a_labelled.txt") #Returns a df 
b = makeTermsFrom(a['Sentences'].iloc[0]) #Splits the sentences 

しかし、dfにその値を含む単語を追加できませんでした。

答えて

1

DataFrame.itertuples()メソッドを使用します

import pandas as pd 

df = pd.DataFrame(
    [['John Lennon', 10], ['George Harrison', 6]], 
    columns=['beatle', 'songs'] 
) 

longform = pd.DataFrame(columns=['word', 'num']) 

for idx, name, songs in df.itertuples(): 
    name_words = (i.lower() for i in name.split()) 

    longform = longform.append(
     [{'word': nw, 'num': songs} for nw in name_words], 
     ignore_index=True 
    ) 

print(longform.head()) 

#  word num 
# 0  john 10 
# 1 lennon 10 
# 2 george 6 
# 3 harrison 6 
+0

はcharm.Thanksのように働きました。 –

関連する問題