【问题标题】:How to create series of pandas dataframe by iteration如何通过迭代创建一系列熊猫数据框
【发布时间】:2015-09-08 06:51:08
【问题描述】:

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

我试过了

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

这行不通。

如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 您要创建变量 df_2008 到 df_2014 吗?
  • 我没有使用 pandas 的经验,但你能把 = 改成 + 吗?
  • 不,我想从原始数据帧 df 创建数据帧名称 df_2008 到 df_2014。谢谢。

标签: python loops pandas


【解决方案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

【讨论】:

  • 这正是我想要的。完美运行!
  • 当灰色帮助你(通过点击勾选标记)时,你会在上面接受答案,对社区有很大帮助。
  • 当然!非常感谢!
猜你喜欢
  • 2017-02-13
  • 1970-01-01
  • 2018-07-07
  • 2021-05-28
  • 2020-05-17
  • 2015-12-09
  • 2021-07-20
  • 1970-01-01
  • 2018-02-26
相关资源
最近更新 更多