如何基于列合并熊猫数据框?

时间:2016-03-18 11:04:25

标签: python pandas

合并多个熊猫数据帧的pythonic / pandas方式是什么? ATM我用循环来做,但感觉不对:

我有三个带有信用运行时的数据框,所有数据框都有一个<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="box" id="box1">Box 1</div> <div class="box" id="box2">Box 2</div> <div class="box" id="box3">Box 3</div> <div class="box" id="box4">Box 4</div> <div class="box" id="box5">Box 5</div> <div class="box" id="box6">Box 6</div> <div class="box" id="box7">Box 7</div> <div class="box" id="box8">Box 8</div> <div class="box" id="box9">Box 9</div> <div class="box" id="box10">Box 10</div> <div class="box" id="box11">Box 11</div> <div class="box" id="box12">Box 12</div> <div class="box" id="box13">Box 13</div> <div class="box" id="box14">Box 14</div> <div class="box" id="box15">Box 15</div> <div class="box" id="box16">Box 16</div> <div class="box" id="box17">Box 17</div> <div class="box" id="box18">Box 18</div> <div class="box" id="box19">Box 19</div> <div class="box" id="box20">Box 20</div>interestliquidation字段。积分具有不同的运行时间(例如,不同的行)。

这是一个学分的样本。

date

我想计算所有学分的总燃耗。

那是:

        amount      annuity date        int.    int. %  liq.    liq. %  special_payment
0       50,000.00   135.42  2016-09-01  52.08   1.25    83.33   2.00    0
1       49,916.67   135.42  2016-10-01  52.00   1.25    83.42   2.00    0
2       49,833.25   135.42  2016-11-01  51.91   1.25    83.51   2.00    0
3       49,749.74   135.42  2016-12-01  51.82   1.25    83.59   2.00    0
4       49,666.15   135.42  2017-01-01  51.74   1.25    83.68   2.00    0

如果信用额度未在指定日期运行,则[interest + liquidation of credit 1] + [interest + liquidation of credit 2] + [interest + liquidation of credit 3] + interest应该为零。

我是大熊猫的新手,因此我希望能够就如何处理这类问题提供一些见解。

1 个答案:

答案 0 :(得分:3)

我认为你可以使用concat,但是你需要添加axis=1。我认为您需要使用keys参数,以便能够区分具有相同名称的不同信用的列。

import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.random.rand(4,4),columns=['a','b','c','d'])
df2 = pd.DataFrame(np.random.rand(4,4),columns=['a','b','c','d'])
df3 = pd.concat([df1,df2],axis=1,keys=['Credit1','Credit2'])

要添加不同列中的数字,请使用,例如

burnrate = df3['Credit1','a']+df3['Credit2','a']