Python 使用pandas在两个连续行中合并行值
我使用的是pandas,有一个数据框,我希望将两行合并在一起,并在每个单元格中附加由符号分隔的值。单元格包含文本或整数 原始数据帧如下所示Python 使用pandas在两个连续行中合并行值,python,pandas,Python,Pandas,我使用的是pandas,有一个数据框,我希望将两行合并在一起,并在每个单元格中附加由符号分隔的值。单元格包含文本或整数 原始数据帧如下所示 index 1 2 3 0 2010 2011 2012 1 First Second Third 2 98% 99% 99% 3 77% 87%
index 1 2 3
0 2010 2011 2012
1 First Second Third
2 98% 99% 99%
3 77% 87% 77%
我希望做到这一点:
index 1 2 3
0 2010 | First 2011 | Second 2012 | Third
2 98% 99% 99%
3 77% 87% 77%
实现这一目标的最佳方法是什么?让我们尝试一下:
df.loc[0] = df[:2].apply(lambda x: ' | '.join(x.astype(str)))
df = df.drop(1).reset_index()
df
输出:
index 1 2 3
0 0 2010 | First 2011 | Second 2012 | Third
1 2 98% 99% 99%
2 3 77% 87% 77%
或者您可以使用
T
df=df.T
df[0]=df[0].astype(str)+'|'+df[1]
df.drop(1,1).T
1 2 3
index
0 2010|First 2011|Second 2012|Third
2 98% 99% 99%
3 77% 87% 77%
df.drop([0,1]).append(df.loc[[0,1]]).apply('|'.join.).rename(0)).sort_index()
。。。我更喜欢你的b.drop([0,1])。append(b.loc[[0,1]])。astype(str)。apply(“|”.join)。rename(0))。sort_index()
以防万一,年份是整数。@piRSquared这更具python风格和优雅。谢谢。非常感谢您提供的解决方案。这正是我需要的。