我必须从一个文件中创建一个dataframe
,该文件包含一些重复的列,其值按以下方式分割:
正如您所看到的,c1
例如分为3个部分或c2
分为2个
我想要的是:
我知道我可以通过以下方式合并列:
df.sum(index=1) or df.max(index=1)
但不知道如何指定我想用特定的列来做 另一种可能性是创建仅包含重复列的数据框,应用sum或max然后合并所有内容。
但我想知道是否有一些不那么“难看”的东西。
答案 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