在python中使用seaborn模块时遇到问题
我正在尝试使用seaborn的在python中使用seaborn模块时遇到问题,python,python-2.7,pandas,seaborn,Python,Python 2.7,Pandas,Seaborn,我正在尝试使用seaborn的jointplot()方法绘制一些基本图 我的熊猫数据框如下所示: Out[250]: YEAR Yields avgSumPcpn avgMaxSumTemp avgMinSumTemp 1970 5000 133.924981 30.437124 19.026974 1971 5560 107.691316 31.161974 19.278186 1972 5196 116.830066 31.45
jointplot()
方法绘制一些基本图
我的熊猫数据框如下所示:
Out[250]:
YEAR Yields avgSumPcpn avgMaxSumTemp avgMinSumTemp
1970 5000 133.924981 30.437124 19.026974
1971 5560 107.691316 31.161974 19.278186
1972 5196 116.830066 31.454192 19.443712
1973 4233 181.550733 30.373581 19.097679
1975 5093 112.137538 30.428966 18.863224
我试图画出'Yields'
与'YEAR'
的对比图(这样一个图可以看出'Yields'
是如何随时间变化的)。一个简单的情节
但当我这么做的时候:
sns.jointplot(x='YEAR',y='Yeilds', data = summer_pcpn_temp_yeild, kind = 'reg', size = 10)
我得到以下错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-251-587582a746b8> in <module>()
3 #ax = plt.axes()
4 #sns_sum_reg_min_temp_pcpn = sns.regplot(x='avgSumPcpn',y='avgMaxSumTemp', data = df_sum_temp_pcpn)
----> 5 sns.jointplot(x='Yeilds',y='YEAR', data = summer_pcpn_temp_yeild, kind = 'reg', size = 10)
6 plt.title('Avg Summer Precipitation vs Yields of Wharton TX', fontsize = 10)
7
//anaconda/lib/python2.7/site-packages/seaborn/distributions.pyc in jointplot(x, y, data, kind, stat_func, color, size, ratio, space, dropna, xlim, ylim, joint_kws, marginal_kws, annot_kws, **kwargs)
793 grid = JointGrid(x, y, data, dropna=dropna,
794 size=size, ratio=ratio, space=space,
--> 795 xlim=xlim, ylim=ylim)
796
797 # Plot the data using the grid
//anaconda/lib/python2.7/site-packages/seaborn/axisgrid.pyc in __init__(self, x, y, data, size, ratio, space, dropna, xlim, ylim)
1637 if dropna:
1638 not_na = pd.notnull(x) & pd.notnull(y)
-> 1639 x = x[not_na]
1640 y = y[not_na]
1641
TypeError: string indices must be integers, not Series
这给了我:
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<type 'numpy.ndarray'>
因此,我无法理解如何修复它
任何帮助都将不胜感激
感谢检查年和收益率是否具有整数(而非字符串)类型的值。尝试在调用jointplot时将x='Yelds'更改为x='Yelds'
sns.jointplot(x='YEAR',y='Yeilds', data = summer_pcpn_temp_yeild, kind = 'reg', size = 10)
错误消息具有误导性。Seaborn在summer\u pcpn\u temp\u yeild数据框中找不到名为“Yeilds”的列,因为数据框列拼写为“Yields”
我也遇到了同样的问题,通过将x=参数改为sns.jointplot()解决了这个问题
sns.jointplot(x='YEAR',y='Yeilds', data = summer_pcpn_temp_yeild, kind = 'reg', size = 10)