Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas Panda:如何在循环中生成多个列?_Pandas - Fatal编程技术网

Pandas Panda:如何在循环中生成多个列?

Pandas Panda:如何在循环中生成多个列?,pandas,Pandas,以下代码(N天移动平均数的计算)适用于油井。但是我想用50替换其他数字(例如,5、10、20等)。我不确定是否可以将下面的代码转换为for循环中的内容。谁能帮帮我吗 df['ma50pfret']= df['ret'] df.loc[df.adjp >= df.ma50, 'adjp > ma50']= 1 df.loc[df.adjp < df.ma50, 'adjp > ma50']= 0 df.iloc[0, -1]= 1 df['adjp > ma50'

以下代码(N天移动平均数的计算)适用于油井。但是我想用50替换其他数字(例如,5、10、20等)。我不确定是否可以将下面的代码转换为for循环中的内容。谁能帮帮我吗

df['ma50pfret']= df['ret']

df.loc[df.adjp >= df.ma50, 'adjp > ma50']= 1
df.loc[df.adjp < df.ma50, 'adjp > ma50']= 0
df.iloc[0, -1]= 1

df['adjp > ma50']= df['adjp > ma50'].astype(int)
df.loc[df['adjp > ma50'].shift(1)== 0, 'ma50pfret']= 1.000079 # 1.02**(1/250)

df['cum_ma50pfret']=df['ma50pfret'].cumprod()
df.head(10)
df['ma50pfret']=df['ret']
df.loc[df.adjp>=df.ma50,'adjp>ma50']=1
df.loc[df.adjpma50']=0
df.iloc[0,-1]=1
df['adjp>ma50']=df['adjp>ma50'].astype(int)
df.loc[df['adjp>ma50'].shift(1)=0,'ma50pfret']=1.000079#1.02**(1/250)
df['cum_ma50pfret']=df['ma50pfret'].cumprod()
测向头(10)

您的列是否命名为
ma5
ma10
等?你可以在[5,10,20]中为i使用
:column_name=f“ma{i}”
并在循环中执行你的计算。