我有一个熊猫数据框:
我想获取年份的平均值列值,将其相加然后取平均值。例如,我将结合索引0-5
(175.05 + 195.15 + 198.43 + 183.594 + 170.9 + 155.5)/ 6 以此类推。最后,行数将与剩余的年份数相同(从2019年,2018年,2017年,2016年,2015年,2014年开始。
结果数据框看起来像...
答案 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)