2016-09-08 17 views
1

私はpandasでgroupbyを実行しました。私はいくつかの入力を必要とする複雑な関数を適用し、私の元のデータフレームで焼きたいpandasシリーズを出力します。これは私にとっては周知の手続きであり、非常にうまくいっています。この最後のケースではexcetです(そのうちのコードを完全に投稿できないという私の謝罪を送っています)。本質的に私はTypeError: incompatible index of inserted column with frame indexを得る。しかし、以下に示すように、私は1つを得るべきではありません。groupby pandas:フレームインデックス付きの挿入カラムの互換性のないインデックス

group_by部:

all_in_data_risk['weights_of_the_sac'] = all_in_data_risk.groupby(['ptf', 'ac'])['sac', 'unweighted_weights_by_sac', 'instrument_id', 'risk_budgets_sac'].apply(lambda x: wrapper_new_risk_budget(x, temp_fund_all_ret, method_compute_cov)) 

関数である:このエラー隆起

def wrapper_new_risk_budget: 
    print(x.index) 
    ...  
    print(result.index) 
    return result.loc[:, 'res'] 

print(np.array_equal(result.index, x.index)) 
01:

raise TypeError('incompatible index of inserted column ' 
TypeError: incompatible index of inserted column with frame index 

問題はこれです

すべてがTrueである。これは索引照合を保証するものでなければならず、したがって問題は単にそこにあるべきではありません。

現在、私が提供している情報は、少なからず言っても不十分ですが、どこに問題があるのか​​についての洞察はありますか?

PS:自分のnumpyの表現であったが、私は、コード内でマージを実行したときに、私はすでに、データフレームに結果を変換しようとした私の理解を超えた理由のために、pd.Series(result.loc[:, 'res'].values, index=result.index)

答えて

1

OKと出力を書き直すことを試みました彼らはパンダの目の前で何か違っていた。私はマージ(長いとより非効率)の回避策を試して、今より伝統的な手段で動作します。

今日私は非常に厳しい時間があり、締め切りが迫っているので、完全な例を投稿することはできませんが、できるだけ早く回答した人この問題の解決に役立つ何かを見つける可能性のある他のすべてのユーザーに、メッセージを送信します。