Multiprocessing pandas apply

import multiprocessing as mp
import pandas.util.testing as pdt

def process_apply(x):
    # do some stuff to data here

def process(df):
    res = df.apply(process_apply, axis=1)
    return res

if __name__ == '__main__':
    p = mp.Pool(processes=8)
    split_dfs = np.array_split(big_df,8)
    pool_results = p.map(aoi_proc, split_dfs)
    p.close()
    p.join()

    # merging parts processed by different processes
    parts = pd.concat(pool_results, axis=0)

    # merging newly calculated parts to big_df
    big_df = pd.concat([big_df, parts], axis=1)

    # checking if the dfs were merged correctly
    pdt.assert_series_equal(parts['id'], big_df['id'])

PDF to TXT Python 3.5

Утащил в интернетах функцию и подправил её до рабочего состояния

ЧТобы не похерить кладу сюда)


 

def pdf_to_txt(filename):
from io import StringIO
from pdfminer.converter import LTChar, TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfparser import PDFDocument, PDFParser
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter

class CsvConverter(TextConverter):
def __init__(self, *args, **kwargs):
self.codec = ‘utf-8’
TextConverter.__init__(self, *args, **kwargs)

def end_page(self, i):
from collections import defaultdict
lines = defaultdict(lambda : {})
for child in self.cur_item._objs:                #<— changed
if isinstance(child, LTChar):
(_,_,x,y) = child.bbox
line = lines[int(-y)]
line[x] = child._text.encode(self.codec) #<— changed

for y in sorted(lines.keys()):
line = lines[y]
#print(line)
self.outfp.write(«».join(line[x].decode() for x in sorted(line.keys())))
self.outfp.write(«\n»)

rsrc = PDFResourceManager()
outfp = StringIO()
device = CsvConverter(rsrc, outfp,  laparams=LAParams())#codec=»utf-8″,

doc = PDFDocument()
fp = open(filename, ‘rb’)
parser = PDFParser(fp)
parser.set_document(doc)
doc.set_parser(parser)
doc.initialize(»)

interpreter = PDFPageInterpreter(rsrc, device)

for i, page in enumerate(doc.get_pages()):
outfp.write(«START PAGE %d\n» % i)
if page is not None:
interpreter.process_page(page)
outfp.write(«END PAGE %d\n» % i)

device.close()
fp.close()

return outfp.getvalue()

val = pdf_to_csv(r’С:/визуализация эволюционных каскадов сообщений в социальных сетях с помощью силовых графов.pdf’)
l = [x for x in val.split(‘\n’) if x!=’ ‘]
l

API google analytics python 3.4

Затрахался искать нужные ссылки и ответы в этом черезжопунаписанном гугловом мануале

Нашел нужные примеры на другом сайте

В общем три ссылки, которые мне помогли разобраться в этой чертовой каше для google.analytics под python 3.4

 

Как

http://blog.trenthauck.com/posts/google-service-accounts-for-google-analytics/

Что

https://developers.google.com/apis-explorer/?hl=en_US#p/analytics/v3/

Шаблоны

https://ga-dev-tools.appspot.com/query-explorer/

NLTK русский язык

#coding=utf-8
from nltk.stem import SnowballStemmer           #подключение словаря и импорт SnowballStemmer
russian_stemmer = SnowballStemmer(‘russian’)    #выбор русского языка для извлечения корня
print (russian_stemmer.stem(u’приветственный’)) #вывод на экран корня слова

Запросы к SQLITE на R

Напоминалка мне)))

Либа — RSQLite

con <- dbConnect(SQLite(), "keys_by_weeks.sqlite")
# query
rs <- dbSendQuery(con, «select * from USArrests»)
d1 <- fetch(rs, n = 10) # extract data in chunks of 10 rows
dbHasCompleted(rs)
d2 <- fetch(rs, n = -1) # extract all remaining data
dbHasCompleted(rs)
dbClearResult(rs)
dbListTables(con)
# clean up
dbDisconnect(con)

Ну и ссылочка на реф не повредит))

http://cran.r-project.org/web/packages/RSQLite/RSQLite.pdf

 

выполнить код из строки

ВОт тоже напоминалочка кода… юзается для получения объекта в среде по имени в строке))))

т.е. x<-c(1,2,3)

print(x) и print(‘x’) выполнят совершенно разные вещи, и посему

eval(parse(text=’x’)) —  вот что спасет отца русской демократии!

datetime python

Украл чужие записочки по работе с датами в питоне… вдруг попадут))))

now_date = datetime.date.today() # Текущая дата (без времени)
now_time = datetime.datetime.now() # Текущая дата со временем
cur_year = now_date.year # Год текущий
cur_month = now_date.month # Месяц текущий
cur_day = now_date.day # День текущий
cur_hour = now_time.hour # Час текущий
cur_minute = now_time.minute # Минута текущая
cur_second = now_time.second # Секунда текущие
num_week = now_date.isoweekday() # узнаем номер недели (от 1 до 7)
now_date = now_date.replace(2011,6,30) # меняем полностью дату на 30.06.2011
now_date = now_date.replace(day=cur_day) # меняем только день
now_date = now_date.replace(month=cur_month) # меняем только месяц
now_date = now_date.replace(year=cur_year) # меняем только год
ny_2011 = datetime.date(2011,2,1) # создали дату: 1 февраля 2011 года
delta = ny_2011 - now_date # разница (дельта) в между 2-мя датами
delta = datetime.timedelta(days=2) # дельта в 2 дня
now_date = now_date + delta # Узнаем какое число будет через 2 дня
now_date = now_date - delta # или какое число было 2 дня назад
print(now_time.strftime("%d.%m.%Y %I:%M %p")) # форматируем дату