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

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

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

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

Python

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

Q&A

1回答

2310閲覧

int64からint32に変換できなくてエラー?

Pablito

総合スコア71

Python 3.x

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

Python

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

0グッド

1クリップ

投稿2020/02/05 01:27

編集2020/02/05 02:13

前提・実現したいこと

広告がゲストの数の増減にどれくらいのインパクトがあるかを
計測するために、重回帰分析を行おうと考えております。
(参考:https://qiita.com/gatchaman-20140215/items/86299f4501d9f3576ea2)
データの中身は以下のような感じです。

months guests TV_a TV_b TV_c TV_d NP_a NP_b NP_c NP_d BL_a BL_b BL_c BL_d 10月 137254 13508160 40464163 10012200 10460575 0 5675220 495000 3888000 0 27965000 0 4136000 11月 159762 11078754 33905614 12836200 2830800 1179000 4591350 0 2034000 188000 17390000 0 94000 12月 204869 9383450 8054120 3438750 13908925 270000 747000 747000 2484000 5640000 1645000 0 0 ... .. .....

そこで参考URLの通り、pairplotから始めようとしたのですが、
以下のエラーが起きました。

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

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-13-766b93ad79b2> in <module> ----> 1 sns.pairplot(data[col_tv], kind='reg') c:\users\lib\site-packages\seaborn\axisgrid.py in pairplot(data, hue, hue_order, palette, vars, x_vars, y_vars, kind, diag_kind, markers, height, aspect, corner, dropna, plot_kws, diag_kws, grid_kws, size) 2132 elif kind == "reg": 2133 from .regression import regplot # Avoid circular import -> 2134 plotter(regplot, **plot_kws) 2135 2136 # Add a legend c:\users\lib\site-packages\seaborn\axisgrid.py in map_offdiag(self, func, **kwargs) 1408 """ 1409 -> 1410 self.map_lower(func, **kwargs) 1411 if not self._corner: 1412 self.map_upper(func, **kwargs) c:\users\lib\site-packages\seaborn\axisgrid.py in map_lower(self, func, **kwargs) 1378 """ 1379 indices = zip(*np.tril_indices_from(self.axes, -1)) -> 1380 self._map_bivariate(func, indices, **kwargs) 1381 return self 1382 c:\users\lib\site-packages\seaborn\axisgrid.py in _map_bivariate(self, func, indices, **kwargs) 1504 y_var = self.y_vars[i] 1505 ax = self.axes[i, j] -> 1506 self._plot_bivariate(x_var, y_var, ax, func, kw_color, **kws) 1507 self._add_axis_labels() 1508 c:\users\lib\site-packages\seaborn\axisgrid.py in _plot_bivariate(self, x_var, y_var, ax, func, kw_color, **kwargs) 1534 color = self.palette[k] if kw_color is None else kw_color 1535 -> 1536 func(x, y, label=label_k, color=color, **kwargs) 1537 1538 self._clean_axis(ax) c:\users\lib\site-packages\seaborn\regression.py in regplot(x, y, data, x_estimator, x_bins, x_ci, scatter, fit_reg, ci, n_boot, units, seed, order, logistic, lowess, robust, logx, x_partial, y_partial, truncate, dropna, x_jitter, y_jitter, label, color, marker, scatter_kws, line_kws, ax) 816 scatter_kws["marker"] = marker 817 line_kws = {} if line_kws is None else copy.copy(line_kws) --> 818 plotter.plot(ax, scatter_kws, line_kws) 819 return ax 820 c:\users\lib\site-packages\seaborn\regression.py in plot(self, ax, scatter_kws, line_kws) 363 364 if self.fit_reg: --> 365 self.lineplot(ax, line_kws) 366 367 # Label the axes c:\users\lib\site-packages\seaborn\regression.py in lineplot(self, ax, kws) 406 """Draw the model.""" 407 # Fit the regression model --> 408 grid, yhat, err_bands = self.fit_regression(ax) 409 edges = grid[0], grid[-1] 410 c:\users\lib\site-packages\seaborn\regression.py in fit_regression(self, ax, x_range, grid) 214 yhat, yhat_boots = self.fit_logx(grid) 215 else: --> 216 yhat, yhat_boots = self.fit_fast(grid) 217 218 # Compute the confidence interval at each grid point c:\users\01037485\taishi\lib\site-packages\seaborn\regression.py in fit_fast(self, grid) 239 n_boot=self.n_boot, 240 units=self.units, --> 241 seed=self.seed).T 242 yhat_boots = grid.dot(beta_boots).T 243 return yhat, yhat_boots c:\users\lib\site-packages\seaborn\algorithms.py in bootstrap(*args, **kwargs) 83 for i in range(int(n_boot)): 84 resampler = integers(0, n, n) ---> 85 sample = [a.take(resampler, axis=0) for a in args] 86 boot_dist.append(f(*sample, **func_kwargs)) 87 return np.array(boot_dist) c:\users\lib\site-packages\seaborn\algorithms.py in <listcomp>(.0) 83 for i in range(int(n_boot)): 84 resampler = integers(0, n, n) ---> 85 sample = [a.take(resampler, axis=0) for a in args] 86 boot_dist.append(f(*sample, **func_kwargs)) 87 return np.array(boot_dist) TypeError: Cannot cast array data from dtype('int64') to dtype('int32') according to the rule 'safe'

因みにこのような図は出てきました。
実際の図

該当のソースコード

Python

1import pandas as pd 2import numpy as np 3import matplotlib.pyplot as plt 4import matplotlib as mpl 5%matplotlib inline 6import seaborn as sns 7import statsmodels.api as sm 8 9data = pd.read_csv(path, encoding='Shift-jis', sep=',') 10data.head(10) 11 12co = data.drop('months', axis=1) 13col = co.columns 14col 15 16#Index(['guests', 'TV_a', 'TV_b', 'TV_c', 'TV_d', 'NP_a', 'NP_b', 'NP_c', 17# 'NP_d', 'BL_a', 'BL_b', 'BL_c', 'BL_d'], 18# dtype='object') 19 20col_tv = col[1:5] 21col_tv 22#Index(['TV_a', 'TV_b', 'TV_c', 'TV_d'], dtype='object') 23 24sns.pairplot(data[col_tv], kind='reg') 25

試したこと

astype(np.int32)など
試しましたが、だめでした、、、

因みにヒートマップを試したところ、
こちらはうまくいきました。

Python

1cm = np.corrcoef(data[col_tv].values.T) 2sns.set(font_scale=1.5) 3hm = sns.heatmap(cm, 4 cbar=True, 5 annot=True, 6 square=True, 7 fmt='.2f', 8 annot_kws={'size': 15}, 9 yticklabels=col_tv, 10 xticklabels=col_tv) 11plt.show()

ヒートマップ
何卒宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

この辺り参考になりませんでしょうか?
https://github.com/numpy/numpy/issues/11549

ここでは数値と扱うべきところを文字列で指定してしまっているためエラーが発生しているようです。

投稿2020/02/05 06:02

Yamato.dd

総合スコア48

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

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

Pablito

2020/02/05 07:37

ご回答ありがとうございます。 一応全てのデータ型はint64になっているのですが、 ここでも文字列指定が問題ですかね? 問題だとするとどこどう直せばいいのか、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問