2
次のように問題の解決策を見つけるのを手伝ってください。 日付(列)ごとに、値があります。私はそれらをランク付けし、3つのグループに割り当てます。私の目標は、Low、Mid、Topグループで値をグループ化し、グループ平均を計算することです。私はDataFrameと自分のソリューションを次のように配置します。 誰かがより良いソリューションを提案できますか? 私の実際のデータは10000行と300列です。 より直接的に行うには、適用またはラムダの方法がありますか?ありがとうございました。Groupby DataFramのランク/百分位数
value=DataFrame({'1/1/2000':[1,4,5,6,5],
'1/1/2001':[3,7,8,9,4],
'1/1/2002':[7,8,9,4,5]}, index=list('ABCDE'))
rank=value.apply(lambda x: pd.qcut(x, 3, labels=['low','mid','top']))
df=pd.DataFrame()
df['Value']=value.stack()
df['Rank']=rank.stack()
df1=df.reset_index()
df1.groupby(['Date','Rank']).mean()
感謝します!私は "Low、Mid、High"を各日付内に割り当てたいと思う。したがって、日付ごとに値がソートされ、3つのバケットのいずれかに割り当てられます。 qQueryを日付またはqcutでgroupby(Date)オブジェクトにすることはできますか?@jezrael – Lisa