Python 3.x 使用Python3.5和pandas的相对定位

Python 3.x 使用Python3.5和pandas的相对定位,python-3.x,csv,pandas,Python 3.x,Csv,Pandas,我正在格式化一些csv文件,我需要添加使用其他列进行算术运算的列。与Excel一样,B3=sum(A1:A3)/3,然后B4=sum(A2:A4)/3。我已经查找了相关索引,但还没有找到我要做的事情 def formula_columns(csv_list, dir_env): for file in csv_list: df = pd.read_csv(dir_env + file) avg_12(df) print(df[10:20])

我正在格式化一些csv文件,我需要添加使用其他列进行算术运算的列。与Excel一样,
B3=sum(A1:A3)/3
,然后
B4=sum(A2:A4)/3
。我已经查找了相关索引,但还没有找到我要做的事情

def formula_columns(csv_list, dir_env):
    for file in csv_list:
        df = pd.read_csv(dir_env + file)
        avg_12(df)
        print(df[10:20])

# Create AVG(12) Column
def avg_12 ( df ):
    df[ 'AVG(12)' ] = df[ 'Price' ]
    # Right Here I want to set each value of 'AVG(12)' to equal
    # the sum of the value of price from its own index plus the
    # previous 11 indexes
    df.loc[:10, 'AVG(12)'] = 0

我会想象这是一项普通的任务,我会假设我找错了地方。如果有人有什么建议,我将不胜感激。

这可以通过滚动法完成:

import numpy as np
import pandas as pd
np.random.seed(1)
df = pd.DataFrame(np.random.randint(1, 5, 10), columns = ['A'])

df
Out[151]: 
   A
0  2
1  4
2  1
3  1
4  4
5  2
6  4
7  2
8  4
9  1
取A1:A3、A2:A4等的平均值:

df.rolling(3).mean()
Out[152]: 
          A
0       NaN
1       NaN
2  2.333333
3  2.000000
4  2.000000
5  2.333333
6  3.333333
7  2.666667
8  3.333333
9  2.333333
它需要18只熊猫。对于早期版本,请使用
pd.rolling\u mean()


该解决方案适用于此特定示例。如果我想要
B3=A2
B4=A3
怎么办?请使用shift:
df['B']=df['A']。shift(1)
谢谢!我想我需要花些时间来研究数据帧函数。
pd.rolling_mean(df['A'], 3)