我正在使用当前使用大(> 5GB).csv文件操作的系统.为了提高性能,我正在测试(A)从磁盘创建数据帧的不同方法(pandas VS dask)以及(B)将结果存储到磁盘的不同方法(.csv VS hdf5文件).
为了衡量绩效,我做了以下几点:
def dask_read_from_hdf():
results_dd_hdf = dd.read_hdf('store.h5', key='period1', columns = ['Security'])
analyzed_stocks_dd_hdf = results_dd_hdf.Security.unique()
hdf.close()
def pandas_read_from_hdf():
results_pd_hdf = pd.read_hdf('store.h5', key='period1', columns = ['Security'])
analyzed_stocks_pd_hdf = results_pd_hdf.Security.unique()
hdf.close()
def dask_read_from_csv():
results_dd_csv = dd.read_csv(results_path, sep = ",", usecols = [0], header = 1, names = ["Security"])
analyzed_stocks_dd_csv = results_dd_csv.Security.unique()
def pandas_read_from_csv():
results_pd_csv = pd.read_csv(results_path, sep = ",", usecols = [0], header = 1, names = ["Security"])
analyzed_stocks_pd_csv = results_pd_csv.Security.unique()
print "dask hdf performance"
%timeit …Run Code Online (Sandbox Code Playgroud) 我正在解析df1包含字符串对象行的pandas数据框。我有一个关键字参考列表,需要df1从参考列表中删除包含任何单词的每一行。
目前,我这样做是这样的:
reference_list: ["words", "to", "remove"]
df1 = df1[~df1[0].str.contains(r"words")]
df1 = df1[~df1[0].str.contains(r"to")]
df1 = df1[~df1[0].str.contains(r"remove")]
Run Code Online (Sandbox Code Playgroud)
不能扩展到数千个单词。但是,当我这样做时:
df1 = df1[~df1[0].str.contains(reference_word for reference_word in reference_list)]
Run Code Online (Sandbox Code Playgroud)
我产生错误,第一个参数必须是字符串或编译模式。
按照此解决方案,我尝试了:
reference_list: "words|to|remove"
df1 = df1[~df1[0].str.contains(reference_list)]
Run Code Online (Sandbox Code Playgroud)
这不会引发异常,但不会解析所有单词。
如何有效地使用带有单词列表的str.contains?
我有一个joblib's的用例Parallel, delayed。我已经包含了一些在某些条件下终止工人的功能。然而,当我这样做,我随机产生JoblibWebdriverException,Multiprocessing exception,JoblibURLerror,或只error。
令我高兴的是,我在docs 中没有找到关于如何(定义?)/捕获异常的任何部分。
当我做:
try:
Parallel(delayed(function))
except (JoblibWebdriverException | error | 'Multiprocessing exception'):
# written with separate excepts in original code
log_errors()
Run Code Online (Sandbox Code Playgroud)
我屈服,name JoblibWebdriverException not defined然后是:
---------
Sub-process traceback
---------
Multiprocessing exception:
(trace stack)
Run Code Online (Sandbox Code Playgroud)
在python中使用Parallel时如何捕获未定义的joblib异常?
exception-handling try-catch python-multithreading joblib python-multiprocessing
如 python 的日志记录手册中所述,我想logging.INFO在控制台上显示,同时写入logging.WARNING日志文件。
但是,logging.INFO使用此代码时,我在控制台和日志文件中看到:
import logging
def initialize_logger():
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO) # <--- ADDING THIS LINE SOLVED IT
fh = logging.FileHandler('error.log') # create file handler which logs WARNING
fh.setLevel(logging.WARNING)
ch = logging.StreamHandler() # create console handler which logs INFO
ch.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)s - %(message)s') # create formatter
ch.setFormatter(formatter) # add formatter to handlers
fh.setFormatter(formatter) # add formatter to handlers
logger.addHandler(ch) # add the handlers to logger
logger.addHandler(fh) # add the …Run Code Online (Sandbox Code Playgroud) 我是 VBA 的新手并试图自动过滤列范围。该列名为“Vlookup”,位于索引位置 27。
rData.AutoFilter field:=27, Criteria1:="Class" ' filter criterion
Run Code Online (Sandbox Code Playgroud)
为了使这个动态,我需要能够根据列名而不是列索引进行过滤。
但是,当我这样做时
rData.AutoFilter field:=Application.Match("Vlookup", Selection.Rows(1), 0), Criteria1:="Class" ' filter criterion
Run Code Online (Sandbox Code Playgroud)
我屈服
运行时错误“424”-需要对象
如何Autofilter在 VBA 中正确按列名?