実現したいこと
「pythonプログラミングとデータ分析」という書籍に沿って勉強を進めています。
下記の通り、groupbyメソッドを使用したいのですが、うまく動作しませんでした。
原因をご教示いただけると助かります。。。
発生している問題・分からないこと
下記エラーメッセージが表示されます
エラーメッセージ
error
1--------------------------------------------------------------------------- 2TypeError Traceback (most recent call last) 3/usr/local/lib/python3.10/dist-packages/pandas/core/groupby/groupby.py in _agg_py_fallback(self, how, values, ndim, alt) 4 1941 try: 5-> 1942 res_values = self._grouper.agg_series(ser, alt, preserve_dtype=True) 6 1943 except Exception as err: 7 817 frames 9TypeError: can only concatenate str (not "int") to str 10 11The above exception was the direct cause of the following exception: 12 13TypeError Traceback (most recent call last) 14/usr/local/lib/python3.10/dist-packages/pandas/core/groupby/groupby.py in _agg_py_fallback(self, how, values, ndim, alt) 15 1944 msg = f"agg function failed [how->{how},dtype->{ser.dtype}]" 16 1945 # preserve the kind of exception that raised 17-> 1946 raise type(err)(msg) from err 18 1947 19 1948 if ser.dtype == object: 20 21TypeError: agg function failed [how->mean,dtype->object] 22
該当のソースコード
Python(それまで実行した処理)
1zip_url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip' 2fn = 'bank-full.csv' 3 4!wget $zip_url 5!unzip -o bank.zip 6 7import pandas as pd 8 9df = pd.read_csv( 10 fn, 11 sep = ';', 12 na_values='unknown', 13 true_values=['yes'], 14 false_values=['no']) 15 16columns = [ 17 '年齢','職業','婚姻','学歴','債務不履行','平均残高','住宅ローン','個人ローン','連絡手段','最終通話日','最終通話月','最終通話秒数','通話回数_販促中','前回販促後_経過日数','通話回数_販促前','前回販促結果','今回販促結果'] 18 19df2 = df.copy() 20df2.columns = columns 21 22columns1 = list(df2.columns) 23print(columns1) 24columns2 = columns1[-1:]+columns1[:-9] 25print(columns2) 26df2 = df2[columns2] 27 28
Python(エラーコード)
1df_gr1 = df2.groupby('学歴').mean() 2 3display(df_gr1)
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
書籍を見返しても、誤字した箇所がわからず・・・
ご教示いただけますと幸いです。
よろしくお願いいたします。
補足
特になし
回答2件
あなたの回答
tips
プレビュー