私はにDataFrame
を、文字列にはdf.strings
という列を使用しています。それらの文字列の個々の単語を、他の列と同じ値を持つ独自の行に入れたいと思います。私は3つの文字列(とは無関係の列、時間)がある場合例:既存の行の文字列の単語を含むpandasデータフレームに新しい行を作成するにはどうすればよいですか?
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を使用しています。
EDIT: は、私は今this questionで見つかった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)
私はまだ他の列を維持したいと思います。これは可能ですか?
インデックスがユニークなことになっているので、それは本当に、インデックスを維持しても意味がありません。複数の行に値を展開する方法については、[この類似の質問]を参照してください(http://stackoverflow.com/questions/15255181/questions-about-pandas-expanding-multivalued-column-inverting-and-grouping/15255472#15255472 )。 – BrenBarn
ありがとう!私は自分の質問を編集し、インデックスについての部分を削除しました。今では値を複数の行に展開することができますが、他の列を保存したいと思っています –