Dyl*_*ore 1 python for-loop pandas
我有一个小数据框,两列宽。我的目标是根据 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()
Run Code Online (Sandbox Code Playgroud)
KeyError: 'QE'
Run Code Online (Sandbox Code Playgroud)
使用列表理解和 groupby
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]
Run Code Online (Sandbox Code Playgroud)
print(dfs[1])
Name QE
0 Dave 12.31.2019
1 Sue 12.31.2019
2 John 12.31.2019
Run Code Online (Sandbox Code Playgroud)
在标准的 for 循环中,这将是
dfs = []
for _, dataframe in df.groupby('QE'):
dfs.append(dataframe)
Run Code Online (Sandbox Code Playgroud)