2列幅の小さなデータフレームがあります。私の目標は、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'
リスト内包表記と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]
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]
コメントを追加