Python 使用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%

我使用的是pandas,有一个数据框,我希望将两行合并在一起,并在每个单元格中附加由符号分隔的值。单元格包含文本或整数

原始数据帧如下所示

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风格和优雅。谢谢。非常感谢您提供的解决方案。这正是我需要的。