Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫-有没有办法在一个数据帧中同时进行多个操作?_Python_Pandas_Dataframe - Fatal编程技术网

Python 熊猫-有没有办法在一个数据帧中同时进行多个操作?

Python 熊猫-有没有办法在一个数据帧中同时进行多个操作?,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下代码,这些代码将使用从配置文件动态生成的不同查询执行150多万次 我并没有试图优化查询条件,我只是想看看,与其在不同的列中执行3次查询,我是否可以执行一次查询并获得相同的结果 csv_file_profit = pd.read_csv('C:\\Users\\test_data.csv') if query_str: profit_sum = csv_file_profit.query(query_str)['P/L'].sum() trans_count = csv_

我有以下代码,这些代码将使用从配置文件动态生成的不同查询执行150多万次

我并没有试图优化查询条件,我只是想看看,与其在不同的列中执行3次查询,我是否可以执行一次查询并获得相同的结果

csv_file_profit = pd.read_csv('C:\\Users\\test_data.csv')

if query_str:
    profit_sum = csv_file_profit.query(query_str)['P/L'].sum()
    trans_count = csv_file_profit.query(query_str)['Tran ID'].count()
    atr_profit_sum = csv_file_profit.query(query_str)['Max ATR Profit'].sum()

有没有更快的方法获得相同的结果?

一个改进是计算过滤后的数据帧一次,然后 对该过滤结果执行进一步计算。比如:

if query_str:
    filtered = csv_file_profit.query(query_str)
    profit_sum = filtered['P/L'].sum()
    trans_count = filtered['Tran ID'].count()
    atr_profit_sum = filtered['Max ATR Profit'].sum()
在非常有限的时间内,执行时间大约是代码的50%
数据帧(4行)。对于更大的数据帧,差异应该更大。

what is
query\u str
它是一个字符串,包含在执行150万次时动态生成的查询,if子句在循环中,并且在每次迭代中,查询\u str都被分配了不同的值。我想看到的不是优化我无法更改的查询,而是我可以在一条指令中执行这3个操作吗?每行执行相同的查询3次,只是为了得到不同的聚合,2个和和以及它们在不同列中执行相同查询的计数