【发布时间】:2021-10-31 06:39:24
【问题描述】:
我想通过将physiological 类附加到linnerud 数据来创建linnerud_df 数据框。
import numpy as np
import seaborn as sns; sns.set(style="ticks", color_codes=True)
import sklearn.datasets
import pandas as pd
linnerud = sklearn.datasets.load_linnerud()
linnerud_df = pd.DataFrame(
data= np.c_[linnerud.data, [linnerud.target_names[v] for v in linnerud.target]],
columns= linnerud.feature_names + ['physiological'])
cols = linnerud_df.columns.drop('physiological')
linnerud_df[cols] = linnerud_df[cols].apply(pd.to_numeric)
g = sns.pairplot(linnerud_df, hue='physiological')
错误:
TypeError Traceback (most recent call
last) <ipython-input-137-aa5a883812a9> in <module>
1 linnerud = sklearn.datasets.load_linnerud()
2 linnerud_df = pd.DataFrame(
----> 3 data= np.c_[linnerud.data, [linnerud.target_names[v] for v in linnerud.target]],
4 columns= list(linnerud.feature_names).append('physiological'))
5 cols = linnerud_df.columns.drop('physiological')
<ipython-input-137-aa5a883812a9> in <listcomp>(.0)
1 linnerud = sklearn.datasets.load_linnerud()
2 linnerud_df = pd.DataFrame(
----> 3 data= np.c_[linnerud.data, [linnerud.target_names[v] for v in linnerud.target]],
4 columns= list(linnerud.feature_names).append('physiological'))
5 cols = linnerud_df.columns.drop('physiological')
TypeError: only integer scalar arrays can be converted to a scalar index
【问题讨论】:
-
分别测试
np.c_的 2 个参数以查看导致错误的原因。如果是第二个,确定linnerun.target_names是什么,linnerud.target是什么(尤其是它的元素)。在其他情况下,请自己进行一些调试。不要指望我们猜测linnerud中的内容
标签: python pandas numpy scikit-learn