【问题标题】:Looping over unique ID and plotting the variables of those unique ID individually循环遍历唯一 ID 并分别绘制这些唯一 ID 的变量
【发布时间】:2021-10-01 05:16:56
【问题描述】:

我拥有多个国家/地区的面板数据集,这些数据集具有基于 ISO3 的 ID 及其各自的宏观经济指标。数据如下所示,其中唯一 ID 的数量等于 142(国家/地区):

dfx = pd.DataFrame({'ID': ['a', 'a', 'd', 'd', 'e', 'e', 'g'],
                    'year': [1999,2000,1999,2000,1999,2000,2000],
                    'x1': [1,2,3,4,5,6,7],
                    'x2': [8,9,10,11,12,13,14]}) 
print(dfx)

  ID  year  x1  x2
0  a  1999   1   8
1  a  2000   2   9
2  d  1999   3  10
3  d  2000   4  11
4  e  1999   5  12
5  e  2000   6  13
6  g  2000   7  14

我想按唯一的国家/地区 ID 拆分数据集,存储它并根据每个国家的宏观经济变量以一定的循环进行绘制和运行回归。例如,我已经能够将数据框拆分为以下形状,其中每个 df 属于特定国家/地区,例如df1 是安哥拉:

for j, (ID, subdf) in enumerate(dfx.groupby('ID'), 1):
    locals()[f'df{j}'] = subdf
print(df1)
print(df2)
print(df3)
print(df4)

 ID  year  x1  x2
0  a  1999   1   8
1  a  2000   2   9
  ID  year  x1  x2
2  d  1999   3  10
3  d  2000   4  11
  ID  year  x1  x2
4  e  1999   5  12
5  e  2000   6  13
  ID  year  x1  x2
6  g  2000   7  14

并且,有了这些数据框,我想构建一个循环,使用这些数据框(df1、df2、df3、df4 等直到 df142)遍历每个国家/地区以分别绘制它们的宏变量(x1 和 x2)。

提前谢谢你!

【问题讨论】:

    标签: python pandas loops


    【解决方案1】:

    您可以通过ID 将它们分成组,然后将它们存储在字典中,您可以循环访问以根据单个组制作图。

    In [24]: groups = {key: df.loc[value] for key, value in df.groupby("ID").groups.items()}
    In [26]: for key, group in groups.items():
        ...:     print(group)
        ...: 
      ID  year  x1  x2
    0  a  1999   1   8
    1  a  2000   2   9
      ID  year  x1  x2
    2  d  1999   3  10
    3  d  2000   4  11
      ID  year  x1  x2
    4  e  1999   5  12
    5  e  2000   6  13
      ID  year  x1  x2
    6  g  2000   7  14
    

    组字典:

    {'a':   ID  year  x1  x2
     0  a  1999   1   8
     1  a  2000   2   9,
     'd':   ID  year  x1  x2
     2  d  1999   3  10
     3  d  2000   4  11,
     'e':   ID  year  x1  x2
     4  e  1999   5  12
     5  e  2000   6  13,
     'g':   ID  year  x1  x2
     6  g  2000   7  14}
    

    【讨论】:

    • 感谢您的回复。但我坚持创建一个循环,不知道如何访问字典中的每个元素。请您详细说明一下吗?
    • group 在 for 循环中将为您提供所需的每个组。 key 只是 ID 组的唯一标识符。因此,只需将您的函数应用于group 进行绘图。我打印了groups的字典来帮忙。
    • 请接受并支持我的回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2023-03-20
    • 2015-12-26
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多