如何通过迭代创建一系列的pandas数据帧

时间:2015-06-22 17:39:59

标签: python loops pandas

我想通过迭代从原始df创建df_2008到df_2014。 df的列名为'2008'到'2014',我想将它们分成不同的dfs。

我试过

for i in range(2008, 2015):
    'df_'+str(i)=df[str(i)]

哪个不行。

如果有人能帮助我,我会非常感激。

1 个答案:

答案 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