我有一个小的数据框,宽两列。我的目标是根据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] 删除。
我来说两句