使用循环功能将数据框过滤到数据框列表中

迪伦·摩尔

我有一个小的数据框,宽两列。我的目标是根据QE列中的唯一值将此数据框拆分为数据框列表。

我似乎无法在代码中找到错误。

为清楚起见进行了编辑:

import pandas as pd

def Function1():
    data = {'Name': ['Dave', 'Sue', 'John', 'Dave', 'Michael', 'Sue'],
            'QE': ['12.31.2019', '12.31.2019', '12.31.2019', '03.31.2020', '03.31.2020', '03.31.2020']
            }
    df = pd.DataFrame(data, columns=['Name', 'QE'])
    
    Quarters = list(df['QE'].unique())
               
    dfs = []
    for x in Quarters:
        df = df[df['QE'] == x]
        df = df['Name'].reset_index(drop=True) 
        dfs.append(df)
    
    return df

a = Function1()
KeyError: 'QE' 
马那金

使用列表理解和分组依据

dfs = [dataframe for _, dataframe in df.groupby('QE')]


print(dfs)

[      Name          QE
 3     Dave  03.31.2020
 4  Michael  03.31.2020
 5      Sue  03.31.2020,    Name          QE
 0  Dave  12.31.2019
 1   Sue  12.31.2019
 2  John  12.31.2019]

print(dfs[1])

   Name          QE
0  Dave  12.31.2019
1   Sue  12.31.2019
2  John  12.31.2019

在标准的for循环中,这将是

dfs = []
for _, dataframe in df.groupby('QE'):
    dfs.append(dataframe)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章