質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

455閲覧

pandas dfplyのgroup_byが機能しない

matac

総合スコア5

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/02/07 08:43

編集2020/02/07 09:37

前提・実現したいこと

dfplyでgroup_byを使った集計をしたい。

発生している問題・エラーメッセージ

dfplyでgroup_byを挟んで、smmarizeでsumやnで集計したとき、
group_byが機能せずにカラム全体の集計値が表示される。

該当のソースコード

df >> group_by(df.Annotation) >> summarize(cor_cnt=sum(df.cor_res), cnt=n(df.Annotation))

試したこと

df.groupby('Annotation').sum()
df.groupby('Annotation').size()
上記の集計値は正しくgroup_byされていた。

df >> select(df.Annotation, df.cor_res) >> group_by(df.Annotation) >> summarize(cor_cnt=sum(df.cor_res), cnt=n(df.Annotation))
上記の書き方でもgroup_byは機能していなかった。

補足情報(FW/ツールのバージョンなど)

GoogleColab Python3

####sumについての例です

######シンプルな入力例

Annotationcor_res
00
11
20
31
01
11
21
31

######期待される結果

Annotationcor_res
01
12
21
32

######実際の結果

Annotationcor_res
06
16
26
36

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2020/02/07 08:59

シンプルな入力データ例、それに期待する結果と実際に得られる結果の例を提示すると回答得られやすくなります。
matac

2020/02/07 09:39

ご指摘ありがとうございます。内容を追加しました。
guest

回答1

0

ベストアンサー

The X DataFrame symbol

The DataFrame as it is passed through the piping operations is represented by the symbol X

とのことなので、手前の結果を利用するにはXにて参照する必要があるようです。

Python

1import pandas as pd 2from dfply import * 3 4df = pd.DataFrame({'Annotation':[0,1,2,3,0,1,2,3], 'cor_res':[0,1,0,1,1,1,1,2]}) 5print(df) 6# Annotation cor_res 7#0 0 0 8#1 1 1 9#2 2 0 10#3 3 1 11#4 0 1 12#5 1 1 13#6 2 1 14#7 3 2 15 16print(df >> group_by(X.Annotation) >> summarize(cor_sum=X.cor_res.sum())) 17# Annotation cor_sum 18#0 0 1 19#1 1 2 20#2 2 1 21#3 3 3

投稿2020/02/07 13:18

can110

総合スコア38341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matac

2020/02/10 03:27

ご教示ありがとうございました。 解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問