在Python中将偶数列的值添加到奇数行

时间:2017-12-12 15:03:13

标签: python pandas dataframe

我在Python中有一个pandas DataFrame看起来像这样:

enter image description here

我想将偶数行(alpha2和beta2)的col2值添加到相应的奇数行(alpha和beta)。因此,我想删除偶数行以获取以下DataFrame:

enter image description here

我的代码(添加值)目前如下所示:

for i in range(0, len(df), 2):
    df.loc[df.index[i], 'col2'] += df.loc[df.index[i+1], 'col2']

有更聪明的方法吗?

1 个答案:

答案 0 :(得分:2)

选项1
您可以执行groupby并重新分配索引 -

v = df.groupby(df.index // 2).col2.sum()
v.index = df.col1[::2]
v.reset_index()

    col1  col2
0  alpha    30
1   beta    70

礼貌MaxU,更好的方法是将np.arange传递给groupby -

df.groupby(np.arange(len(df)) // 2).col2.sum()

选项2
另一种方法是切片和分配 -

y = df.col2.values
v = pd.DataFrame({'col1' : df.col1.values[::2], 'col2' : y[::2] + y[1::2]})
v

    col1  col2
0  alpha    30
1   beta    70