如何合并相同标记的两列内容?

时间:2019-04-19 17:17:52

标签: python-3.x pandas

我想从一个数据集中合并相同标签列的内容。

从这里开始:

Index  Name  Name  Name
0      Olaf  Olaf  Eddy
1      Jim   Lola  Olaf

要做,我尝试过这个:

df.set_index('Index').stack().reset_index(level=0, drop=True).to_frame('Name').reset_index()

返回的AttributeError:“ DataFrame”对象没有属性“ to_frame”

我希望这样:

Index  Name
0      Olaf
1      Jim
2      Olaf
3      Lola
4      Eddy
5      Olaf

2 个答案:

答案 0 :(得分:2)

您可以在此处使用pd.melt()(假设Index不是列而是索引):

df.melt(value_name='Name').drop('variable',1)

   Name
0  Olaf
1   Jim
2  Olaf
3  Lola
4  Eddy
5  Olaf

答案 1 :(得分:1)

还可以构造一个新的DataFrame

import pandas as pd
from itertools import chain

pd.DataFrame(chain.from_iterable(zip(*df.filter(like='Name').to_numpy())), 
             columns=['Name'])

#   Name
#0  Olaf
#1   Jim
#2  Olaf
#3  Lola
#4  Eddy
#5  Olaf