我想从一个数据集中合并相同标签列的内容。
从这里开始:
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
答案 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