python使用pandas的交叉表crosstab出现问题
对数据分析时使用到pandas,下面的代码是从数据库中获取数据再转换成DataFrame结构
sql = 'select * from content;'
cur.execute(sql)
rows = cur.fetchall()
datas = []
for data in rows:
datas.append(data)
frame = DataFrame(datas)
数据库的表结构如下:
下面就是数据操作的代码:
def get_education():
print(frame)
print(frame[10])
print(frame[8])
print(type(frame[10]))
city_education = pd.crosstab(frame[10], frame[8], margins=True).sort_values(by='All', ascending=False)[:11]
print(city_education)
然后就一直出现错误:
<class 'pandas.core.series.Series'>
Traceback (most recent call last):
File "D:/python爬虫/python爬虫/爬取拉钩.py", line 301, in <module>
get_education()
File "D:/python爬虫/python爬虫/爬取拉钩.py", line 249, in get_education
city_education = pd.crosstab(frame[10], frame[8], margins=True).sort_values(by='All', ascending=False)[:11]
File "F:\Python35\lib\site-packages\pandas\tools\pivot.py", line 462, in crosstab
aggfunc=len, margins=margins, dropna=dropna)
File "F:\Python35\lib\site-packages\pandas\tools\pivot.py", line 158, in pivot_table
margins_name=margins_name)
File "F:\Python35\lib\site-packages\pandas\tools\pivot.py", line 180, in _add_margins
if margins_name in table.index.get_level_values(level):
File "F:\Python35\lib\site-packages\pandas\indexes\base.py", line 2025, in get_level_values
self._validate_index_level(level)
File "F:\Python35\lib\site-packages\pandas\indexes\base.py", line 1163, in _validate_index_level
(level + 1))
IndexError: Too many levels: Index has only 1 level, not 11
求解答,刚接触pandas,但也参考过别人的,他也是这样写的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
直接用pandas就可以读取