Python 如何在数据帧中拆分列并将每个值存储为新行(在数据框中)?
我的数据集中有一列的“关键字”值存储如下:Python 如何在数据帧中拆分列并将每个值存储为新行(在数据框中)?,python,pandas,Python,Pandas,我的数据集中有一列的“关键字”值存储如下: monster|dna|tyrannosaurus rex|velociraptor|island 我想分割管道中(|)的每个关键字并将其存储为新行,以便稍后使用groupby查看基于关键字的相关性 我得到的最远的结果是: dfn = df['keywords'].str.split('|',expand=True) 但这会将它们存储为新列,而不是新行,并且只会将这些值存储在新的数据帧中。我仍然需要。将其追加回原始数据帧,然后删除包含关键字群集的原
monster|dna|tyrannosaurus rex|velociraptor|island
我想分割管道中(|)的每个关键字并将其存储为新行,以便稍后使用groupby查看基于关键字的相关性
我得到的最远的结果是:
dfn = df['keywords'].str.split('|',expand=True)
但这会将它们存储为新列,而不是新行,并且只会将这些值存储在新的数据帧中。我仍然需要。将其追加回原始数据帧,然后删除包含关键字群集的原始行。您可以在
拆分后添加堆栈
dfn = df['keywords'].str.split('|',expand=True).stack()
谢谢这是有效的,您知道我将如何将其追加到原始数据帧中吗?我得到了一个期望的元组,得到了str
错误。@bytebybyte但是这个序列的形状与df不一样,你可以看看pd。Concate有没有更好的方法来分解每个关键字并将每个关键字重新插入到数据框中,同时保留所有原始值?因此,如果关键字集群中有“monkeys | Banana”和revenue为“2m”,那么将有一行“monkeys”和一行“Banana”分别为“2m”和“2m”。df.set|index('revenue')['keywords'].str.split('|',expand=True)。stack().reset|index()
@bytebybybybybybyyte check thisnovermind,useddfn=df.merge(rev,left,left|,left|on='id','right
使用set_index,stack()和reset_index
合并新的索引,效果非常好。再次感谢!