Skip to main content
 首页 » 编程设计

Python Pandas 从列表中创建多个数据框

2025年05月04日17mfrbuaa

以此作为快速起点;

http://pandas.pydata.org/pandas-docs/stable/reshaping.html

In [1]: df 
Out[1]:  
         date variable     value 
0  2000-01-03        A  0.469112 
1  2000-01-04        A -0.282863 
2  2000-01-05        A -1.509059 
3  2000-01-03        B -1.135632 
4  2000-01-04        B  1.212112 
5  2000-01-05        B -0.173215 
6  2000-01-03        C  0.119209 
7  2000-01-04        C -1.044236 
8  2000-01-05        C -0.861849 
9  2000-01-03        D -2.104569 
10 2000-01-04        D -0.494929 
11 2000-01-05        D  1.071804 

然后隔离 'A' 给出这个:

In [2]: df[df['variable'] == 'A'] 
Out[2]:  
        date variable     value 
0 2000-01-03        A  0.469112 
1 2000-01-04        A -0.282863 
2 2000-01-05        A -1.509059 

现在创建新的数据框将是:

dfA = df[df['variable'] == 'A']  

假设 B 是:

dfB = df[df['variable'] == 'B']  

因此,将数据帧分离为 dfA、dfB、dfC……

dfList  = list(set(df['variable'])) 
dfNames = ["df" + row for row in dfList]   
 
for i, row in enumerate(dfList): 
    dfName = dfNames[i] 
    dfNew = df[df['variable'] == row] 
    dfNames[i] = dfNew       

它运行...但是当尝试 dfA 我得到输出 "dfA"is not defined

请您参考如下方法:

使用groupby和get_group,例如:

grouped = df.groupby('variable') 

然后当你想对每个组做一些事情时,就这样访问它:

my_group = grouped.get_group('A') 

给你:

    date    variable    value 
0   2000-01-03  A   0.469112 
1   2000-01-04  A   -0.282863 
2   2000-01-05  A   -1.509059