在大熊猫中,我已经从CSV导入创建了一个数据框。
data = pd.read_csv('pathToCSV', index_col=[0],usecols=[0,2,3],names=['Date','High','Low'])
输出看起来像这样-
2009.09.18 112 111
2009.09.19 114 222
现在,如果我想逐行计算两列的平均值,然后将该值添加为新列怎么办? 我所做的是
average = (data[1]+data[2])/2
然后
data.join(average)
但是我得到一个错误!我说的对吗?
答案 0 :(得分:1)
我认为您只是在寻找mean
函数,您希望将其按行(axis = 1
)应用于列High
和Low
: / p>
# starting with frame:
>>> data
Date High Low
0 2009.09.18 112 111
1 2009.09.19 114 222
# Use:
data['row_average'] = data[['High','Low']].mean(axis=1)
# and you end up with the frame:
>>> data
Date High Low row_average
0 2009.09.18 112 111 111.5
1 2009.09.19 114 222 168.0
答案 1 :(得分:0)
尽管sacul绝对正确,但是您也可以考虑以下解决方案。
User::ROLES
.map { |r| "#{r.humanize}" }
.map { |r| r.split.map(&:capitalize).join(' ') }
此方法的优点是您可以定义任何函数,然后将其应用于def avg(x,y):
return (x+y)/2
df['row_avg'] = df[['High','Low']].apply(lambda x:avg(*x),axis=1)
行。