результат о pd.read_sql не может быть использован дважды - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь запустить демонстрацию и обнаружил, что результат 'pd.read_sql' нельзя использовать дважды! но это все еще в памяти , это так удивительно. Как я мог это исправить?

#coding=utf-6

import pandas as pd
from sqlalchemy import create_engine

engine = 
create_engine('mysql+pymysql://root:123457@127.0.0.1:3306/chapter12? 
charset=utf8')
sql = pd.read_sql('all_gzdata', engine, chunksize = 10001)
def count109(i): 
    j = i[['fullURL']][i['fullURLId'].str.contains('109')].copy() #找出类别包含107的网址
    j['type'] = None #添加空列
    j['type'][j['fullURL'].str.contains('info/.+?/')] = u'知识首页'
    j['type'][j['fullURL'].str.contains('info/.+?/.+?')] = u'知识列表页'
    j['type'][j['fullURL'].str.contains('/\d+?_*\d+?\.html')] = u'知识内容页'
    print('109')
    return j['type'].value_counts()

def test(i):
    return 3

def test3(i):
    return 4
print(sql)
counts5 = [ test(i) for i in sql]
print(counts5)
counts6 = [ test(i) for i in sql]
print(counts6)
print(sql)
print('finish')

И результат:

anakin@anakin:~/Project/chapter12$ python sql_value_count.py 
<generator object SQLTable._query_iterator at 0x7f03ce621728>
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[]
<generator object SQLTable._query_iterator at 0x7f03ce621728>
finish
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...