当我试图在一只大笔记本中形成一种与海出生的分辨率时,我会发现这一错误。
Here s the end of the stack trace:
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.pyc in get_legend_handles_labels(self, legend_handler_map)
4317 label = handle.get_label()
4318 #if (label is not None and label != and not label.startswith( _ )):
-> 4319 if label and not label.startswith( _ ):
4320 handles.append(handle)
4321 labels.append(label)
AttributeError: numpy.int64 object has no attribute startswith
我进口:
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import math
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style( whitegrid )
%matplotlib inline
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import train_test_split
from sklearn import metrics
import statsmodels.api as sm
我的守则如下:
df = sm.datasets.fair.load_pandas().data
df[ had_affair ] = df.affairs.apply(lambda x: 1 if x != 0 else 0)
sns.factorplot( age , data=df, hue= had_affair , palette= coolwarm )
问题似乎是,使用<代码>hue的Im栏是一种ger,而不是一种str。 使用<代码>df[有_affair_str] = df.had_affair.apply(str),然后将had_affair_str
作为我的hue
,使错误消失,但在线辅导一米在使用这一准确代码时没有发现任何错误。 这是否是一个已知的mat子或海生问题? 我的包裹是否过时?
这里是我的素养包的版本:
ipython==3.1.0
numpy==1.9.2
pandas==0.16.1
matplotlib==1.4.3
seaborn==0.5.1
scikit-learn==0.16.1
statsmodels==0.6.1
编辑:
<代码>df.info(>>:
<class pandas.core.frame.DataFrame >
Int64Index: 6366 entries, 0 to 6365
Data columns (total 11 columns):
rate_marriage 6366 non-null float64
age 6366 non-null float64
yrs_married 6366 non-null float64
children 6366 non-null float64
religious 6366 non-null float64
educ 6366 non-null float64
occupation 6366 non-null float64
occupation_husb 6366 non-null float64
affairs 6366 non-null float64
had_affair 6366 non-null int64
had_affair_str 6366 non-null object
dtypes: float64(9), int64(1), object(1)
memory usage: 596.8+ KB