使用pandas合并两个连续行中的行值

时间:2017-08-16 21:34:23

标签: python pandas

我正在使用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%

实现这一目标的最佳途径是什么?

2 个答案:

答案 0 :(得分:3)

我们试试这个:

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%

答案 1 :(得分:0)

或许您可以使用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%