蟒蛇。合并重复的列

时间:2015-07-16 09:12:10

标签: python pandas merge

我必须从一个文件中创建一个dataframe,该文件包含一些重复的列,其值按以下方式分割:

enter image description here

正如您所看到的,c1例如分为3个部分或c2分为2个

我想要的是:

enter image description here

我知道我可以通过以下方式合并列:

df.sum(index=1) or df.max(index=1)

但不知道如何指定我想用特定的列来做 另一种可能性是创建仅包含重复列的数据框,应用sum或max然后合并所有内容。

但我想知道是否有一些不那么“难看”的东西。

1 个答案:

答案 0 :(得分:4)

以更简单的方式,您可以使用groupby。

In [1]: df = pd.DataFrame(np.random.random_integers(0,10,(5,8)), columns=['C1','C2','C3','C1','C4','C1','C5','C2'])

In [2]: df
Out[2]:
    C1  C2  C3  C1  C4  C1  C5  C2
0   5   0   9   1   7   3   3   8
1   3   1   10  7   1   2   3   8
2   1   0   0   0   4   10  6   10

In [3]: # Groupby level 0 on axis 1 (columns) and apply a sum
df.groupby(level=0, axis=1).sum()

Out[3]:
    C1  C2  C3  C4  C5
0   9   8   9   7   3
1   12  9   10  1   3
2   11  10  0   4   6