在数据框中合并数据

时间:2019-06-05 21:03:12

标签: python pandas

我有一个熊猫数据框:

我想获取年份的平均值列值,将其相加然后取平均值。例如,我将结合索引0-5

(175.05 + 195.15 + 198.43 + 183.594 + 170.9 + 155.5)/ 6 以此类推。最后,行数将与剩余的年份数相同(从2019年,2018年,2017年,2016年,2015年,2014年开始。

enter image description here

结果数据框看起来像...

enter image description here

1 个答案:

答案 0 :(得分:0)

这应该有效:首先获得年份,然后根据搜索获得平均值。

import pandas as pd
import numpy as np

ds = pd.DataFrame([['2019-01-1', 1], ['2019-02-1' , 2], ['2018-01-1', 3], 
                   ['2018-02-1' , 4]], columns=['data', 'mean'])


#get year
d = ds.data.tolist()

years = [x.split('-')[0] for x in d]
ds['year'] = years #add the year to the dataset

#get the mean
ds2 = pd.DataFrame(None, columns=['year', 'mean'])
for y in set(years):
    avg = np.average(ds[ds.year == y]['mean'])
    row = pd.DataFrame([[y, avg]], columns=['year', 'mean'])
    ds2 = ds2.append(row)