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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1155閲覧

pandasで平均,中央値などをmergeしたい

utasan_1008

総合スコア56

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2021/07/02 05:42

編集2021/07/02 13:38

イメージ説明
イメージ説明
イメージ説明

書籍を見ながら進めております。
上記の3つを結合したくて

customer_join = pd.merge(customer_join,uselog_customer,on="customer_id",how="left") customer_join = pd.merge(customer_join,uselog_weekday[["customer_id","rountine_fig"]],on="customer_id",how="left") customer_join.head()

をしたのですが
イメージ説明
画像のように

min_x、mean_y、median_y、max_y、min_y、rountine_fig_y

が追加されてしまうのですが、書籍ではx,yなどの区切りはなくmin、mean、median、max、rountine_fig_だけが出力されているのですが、なぜこれらが追加されてしまうのですか?
またuselog_customerのcolumnのまま表示させるにはどうしたら良いですか?

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

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

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

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

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

ppaul

2021/07/02 06:17

三番目の図と四番目の図は同じですね。 ちゃんとmergeすればデータフレームは変わるはずなので、utasan_1008さんの思い違いでしょう。
utasan_1008

2021/07/02 14:23 編集

すみません添付ミスでした。画像変更しました。 karnelをrestartしたらrountine_fig以外は思うようにいきました。
guest

回答1

0

ベストアンサー

suffixes__list-like, default is (“x”, “y”)
A length-2 sequence where each element is optionally a string indicating the suffix to add to overlapping column names in left and right respectively. Pass a value of None instead of a string to indicate that the column name from left or right should be left as-is, with no suffix. At least one of the values must not be None.

pandas.DataFrame.merge
ということなので,customer_join = pd.merge(customer_join,uselog_customer,on="customer_id",how="left")の時に同じ列名が処理されていると思います。

customer_join.set_index('customer_id').combine_first(uselog_customer.set_index('customer_id'))あたりでなんとかなりそうですが。

投稿2021/07/02 08:57

編集2021/07/02 08:57
toshikawa

総合スコア388

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

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

utasan_1008

2021/07/02 14:40

https://itips.krsw.biz/pandas-dataframe-suffix-x-y/ そちらの文を参考に調べてみてこちらがわかりやすかったです。 列はどれも被っていなかったので、おそらく何度もCellをビルドしてしていたため 重複結合してしまったためだと思います。 Tipsありがとうございます。お手数おかけしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問