我有一个DataFrame
用文本字符串pandas
调用的列。df.strings
我想将这些字符串的各个单词放在它们自己的行上,而其他列的值相同。例如,如果我有 3 个字符串(以及一个不相关的列,时间):
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)
我仍然想保留其他列。这可能吗?