如果特定列中的行具有相同的值,则求和特定行的值

时间:2019-11-22 09:48:50

标签: python pandas dataframe

我有一个像这样的数据框:

    a   b   c
12456   11  123.1
12678   19  345.67
13278   19  1235.345

或其他格式

<table>
    <tr>
        <td>12456</td>
        <td>11</td><td>123.1</td>
    </tr>
    <tr>
        <td>12678</td>
        <td>19</td><td>345.67</td>
    </tr>
    <tr>
        <td>13278</td>
        <td>19</td>
        <td>1235.345</td>
    </tr>
</table>

第一列是索引。我需要添加第三列的行,如果第二列具有相同的值,则使其成为一个。你能建议我做些什么吗?以下是我尝试过但不起作用的内容

    a,b,c=df_addweight.iloc[:,0].values,df_addweight.iloc[:, 1].values,df_addweight.iloc[:, 3].values`
    for u,v,w, in zip(range(1,len(a)),range(1,len(b)),range(1,len(c))):
        if a[u]==a[u-1] and b[v]==b[v-1]:
            df_addweight['W']= c[w]+c[w-1]
        elif a[u]==a[u-1] and b[v]!=b[v-1]:
            df_addweight['W']=c[w]

1 个答案:

答案 0 :(得分:0)

使用熊猫

import pandas as pd

df = pd.read_csv("data.csv", delim_whitespace=True)

df
       a   b         c
0  12456  11   123.100
1  12678  19   345.670
2  13278  19  1235.345


df.groupby('b')['c'].sum()

输出:

b
11     123.100
19    1581.015
Name: c, dtype: float64