这是一个DateFrame,如下所示:
df_12=df[df.index.year==2012]
我想得到一个系列df_X,X ='13','14','15',就像吼叫
df_13,df_14...
事实上,我可以通过以下方式直接获取它:
df_13=df[df.index.year==2013]
df_14=df[df.index.year==2014]
df_15=df[df.index.year==2015]
df_16=df[df.index.year==2016]
但是,当X变得非常大时它会变得疯狂。所以,我尝试使用for循环,
for x in ['13','14','15','16']:
df_+x=df[df.index.year==int('20'+x)]
它引发了一个错误,我知道为什么我错了。 任何人都可以通过循环获得它吗? 谢谢!
答案 0 :(得分:1)
我不是专家,但我认为你可以使用词典,并做这样的事情:
import numpy as np
x=range(10)
name=[0]*len(x)
for i, number in enumerate(x):
name[i]='df_{0}'.format(x[i])
year=range(2013,2023)
data=dict(zip(name,year))
所以,你可以回想起你的数据:
data['df_0']
Out[45]: 2013
实际上,我不知道你是否可以将它用于DataFrames ......
答案 1 :(得分:0)
您的问题是您不能在作业的左侧使用变量名称#include <stdio.h>
#define MAX 100
int main(void){
int i, j, cnt = 1;
int prim[MAX] = { 2 };
for(i=3; i<MAX; i++) {
for(j=0; j<cnt; j++) {
if(i % prim[j] == 0) {
break;
}
}
if(j == cnt) {
prim[cnt++] = i;
}
}
for(j=0; j<cnt; j++) {
printf("%4d", prim[j]);
}
printf("\n");
return 0;
}
。
@mgilson是对的,你应该真的创建一个日期框架的列表或词典。如果重复引用 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
太麻烦,
df_+x
整数键的输入不如字符串,即使用df[df.index.year==2012]
和df_ = {}
for x in ['13','14','15','16']:
df_[x]=df[df.index.year==int('20'+x)]
# usage
df_['13']
如果你真的绝对决定做一些可怕的事情,那么for x in [13,14,15,16]
可以让你以dict的形式访问本地命名空间。
df_[13]
我的建议:就是不要!