テキストの文字列で呼び出さDataFrame
れた列があります。これらの文字列の個々の単語を独自の行で取得し、他の列と同じ値を取得したいと思います。たとえば、3 つの文字列 (および無関係な列、時間) がある場合:pandas
df.strings
Strings Time
0 The dog 4Pm
1 lazy dog 2Pm
2 The fox 1Pm
文字列の単語を含む新しい行が必要ですが、それ以外は同一の列が必要です
Strings --- Words ---Time
"The dog" --- "The" --- 4Pm
"The dog" --- "dog" --- 4Pm
"lazy dog"--- "lazy"--- 2Pm
"lazy dog"--- "dog" --- 2Pm
"The fox" --- "The" --- 1Pm
"The fox" --- "fox" --- 1Pm
文字列から単語を分割する方法を知っています:
string_list = '\n'.join(df.Strings.map(str))
word_list = re.findall('[a-z]+', Strings)
しかし、インデックスとその他の変数を保持しながら、どうすればこれらをデータフレームに入れることができますか? Python 2.7 と pandas 0.10.1 を使用しています。
編集:この質問にある groupby を使用して行を展開する方法を理解しました:
def f(group):
row = group.irow(0)
return DataFrame({'words': re.findall('[a-z]+',row['Strings'])})
df.groupby('class', group_keys=False).apply(f)
私はまだ他の列を保持したいと思います。これは可能ですか?