熊猫-总和与每月列的单独框架

时间:2018-06-24 02:07:04

标签: python pandas

我有两个df:

df_1 = pd.DataFrame([[5,6]], columns=['Jan15','Feb15'])

        Jan15   Feb15
    0   5          6

df_2 = pd.DataFrame([8,3]], columns=['Jan16','Feb16'])

        Jan16   Feb16
    0   8          3

有没有一种方法可以将两个帧相加以便得出:

sum = Index, Jan, Feb
          0    13   9

3 个答案:

答案 0 :(得分:3)

在列标题上需要concat,然后需要groupby

pd.concat([df_1, df_2], axis=1).groupby(by=lambda x: x[:3], axis=1).sum()

   Feb  Jan
0    9   13

这是在您的列名都采用MTHxx格式的前提下进行的。

答案 1 :(得分:2)

使用add()

df_1.add(df_2)

   Index  Jan15  Feb15
0      0     13      9

具有不同的列名:

pd.DataFrame(df_1.values + df_2.values, 
             columns = df_1.columns.str.replace("\d", "")).reset_index()

答案 2 :(得分:1)

这是一种愚蠢的做法,@ coldspeed的答案和@andrew_reece的答案是最好的:

new1 = df_1[:]
new1.columns = [i[:-2] for i in df_1.columns]
new2 = df_2[:]
new2.columns = [i[:-2] for i in df_2.columns]
final_df = new1+new2
indexes = list(new1.index)+list(new1.index)
final_df['Index'] = list(set(indexes))
print(final_df)

输出:

   Jan  Feb  Index
0   13    9      0