Python 3.x 使用Python3.5和pandas的相对定位
我正在格式化一些csv文件,我需要添加使用其他列进行算术运算的列。与Excel一样,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])
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)