我想通过迭代从原始df创建df_2008到df_2014。 df的列名为'2008'到'2014',我想将它们分成不同的dfs。
我试过
for i in range(2008, 2015):
'df_'+str(i)=df[str(i)]
哪个不行。
如果有人能帮助我,我会非常感激。
答案 0 :(得分:1)
要按字符串创建变量,可以使用 - globals()
函数,它返回全局命名空间的字典,然后在该字典中为变量创建一个新元素,并将值设置为所需的值。
此外,您可以直接致电 - pandas.DataFrame(Series)
- 这将为您创建系列中的DataFrame。
示例 -
import pandas as pd
gbl = globals()
for i in range(2008, 2015):
gbl['df_'+str(i)] = pd.DataFrame(df[str(i)])
示例代码 -
In [8]: d = pd.DataFrame([[1,2,3,4],[5,6,7,8]], columns = ['A','B','C','D'])
In [9]: d
Out[9]:
A B C D
0 1 2 3 4
1 5 6 7 8
In [10]: gbl = globals()
In [11]: gbl['e'] = pd.DataFrame(d['A'])
In [12]: e
Out[12]:
A
0 1
1 5