您需要将值转换为int
by astype http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.astype.html, 因为strings
:
sns.heatmap(df_flight.astype(int), annot=True, fmt="d", linewidths=.5)
问题是如果使用DataFrame
以这种方式构造函数,并且值至少有一列是string
s,然后将所有值转换为strings
too:
df = pd.DataFrame([years, months, passengers]).T
print (df.dtypes)
years object
months object
passengers object
解决方案是使用concat http://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html or DataFrame
构造函数与dict
s:
df = pd.concat([years, months, passengers], axis=1)
print (df.dtypes)
years int64
months object
passengers int32
dtype: object
...
sns.heatmap(df_flight, annot=True, fmt="d", linewidths=.5)
Or:
df = pd.DataFrame({'years':years, 'months':months, 'passengers':passengers})
print (df.dtypes)
months object
passengers int32
years int64
dtype: object
...
sns.heatmap(df_flight, annot=True, fmt="d", linewidths=.5)