グループキーとして関数を渡すと、インデックス値ごとに関数が呼び出され、戻り値がグループ名として使用されることがわかりました。私が理解できないことは、列値で関数を呼び出す方法です。Groupby with User Defined Functions Pandas
だから私はこれを行うことができます。これは、2つの長さが3以下のインデックス値を持っているそのうちの一つのグループと、長さ3以上と他にデータを分割
people = DataFrame(np.random.randn(5, 5), columns=['a', 'b', 'c', 'd', 'e'], index=['Joe', 'Steve', 'Wes', 'Jim', 'Travis'])
def GroupFunc(x):
if len(x) > 3:
return 'Group1'
else:
return 'Group2'
people.groupby(GroupFunc).sum()
。しかし、どのようにして列の値の1つを渡すことができますか?したがって、たとえば、各インデックスポイントの列d値が1より大きい場合、私はちょうど次んでした実現:
people.groupby(people.a > 1).sum()
しかし、私は今後の参考のために、ユーザー定義関数でこれを行う方法を知りたいです。
ような何か:
def GroupColFunc(x):
if x > 1:
return 'Group1'
else:
return 'Group2'
しかし、どのように私はこれを呼ぶのですか?試しました
people.groupby(GroupColFunc(people.a))
などの亜種ですが、これは機能しません。
カラム値を関数に渡すにはどうすればよいですか? 複数の列の値をどのように渡しますか? people.a> people.bのようにグループ分けする?
> 1、グループに
徹底的な答えをありがとう。私はパンダのマッキンニーの本と一緒に作業しています。それは本当に徹底的に近いものですが、このような説明は追跡が難しいと感じています。ありがとうございました –