Python - 根据值过滤数据框

时间:2020-12-19 15:16:33

标签: python pandas dataframe filter combinations

我正在对股票进行数据分析,分析大约。运行各种标准的 600,000 行。到目前为止,它满足的最大组合数是 20。我找到了一种生成所有组合的方法。现在下一步是运行过滤器这些组合并提供有关有多少场景产生利润的结果。我拥有的代码需要更长的时间,因此建议我是否可以使用其他任何东西。下面是代码

import csv
import pandas as pd
import numpy as np
import itertools


# Input Entries
dataFile = "ReferenceFile.txt" # Enter the data file with all analysis

combinationFile = "Combination.csv" # Enter the combination file, the file should be in csv file

ResultFile = "Result.csv" # Enter the result file, the file should be in csv file


#Import files
dfData = pd.read_csv(dataFile, sep = ",")

dfData.fillna("", inplace=True)

dfData["AAA"] ="AAA" # adding this column to run different set of combinations at once, combatination can be 2, 3,....10,...20 fields


i = 0
file = open(combinationFile, "r") # opening the file
file
for line in file:
    dfTemp = dfData
    line = line.replace(("\n"),"") 
    line = line.split(',')
    dfTempData = pd.DataFrame(line)
    b = ""
    for col_name in dfTempData[0]:
        z = b + "|"+ col_name
        
        
        if col_name == "AAA":
            A1=1
        else:
            dfTemp=dfTemp[dfData[col_name].str.contains(col_name)]
        
            dfTempP=dfTemp[dfData[col_name].str.contains("Profit")]
        
            a = dfTempP.shape[0]/dfTemp.shape[0]
        
            b = z
                
    #c = str(b) + "," + str(dfTemp.shape[0]) + str(dfTempP.shape[0])  
    
    
    txtfile = open(ResultFile, "a")
    txtfile.write(str(dfTemp.shape[0]) + str("|") + str(dfTempP.shape[0]) + "|" + str(b) + "\n")
    #txtfile.close()
                
    
    i = i + 1
    

txtfile = open(ResultFile, "a")
txtfile.close()
print("Complete")

任何帮助将不胜感激。谢谢!

ReferenceFile ReferenceFile 是一个以逗号分隔的文本文件。图片的第二部分显示了excel文件中的数据

组合文件 enter image description here

价格大于 4 天 EMA,价格低于 4 天 EMA,价格穿过 4 天 EMA 为正,价格穿过 4 天 EMA 为负

价格大于 4 天 EMA,价格低于 4 天 EMA,价格穿过 4 天 EMA 为正,价格穿过 4 天 EMA 为负

价格大于 4 天 EMA,价格低于 4 天 EMA,价格越过 4 天 EMA 为正,AAA

价格大于 4 天 EMA,价格低于 4 天 EMA,价格越过 4 天 EMA 为负,AAA

价格大于 4 DAY EMA,价格穿过 4DAY EMA 为正,价格穿过 4DAY EMA 为负,AAA 价格低于 4DAY EMA,价格穿越 4DAY EMA 为正,AAA,AAA

价格低于 4DAY EMA,价格穿越 4DAY EMA 负,AAA,AAA

价格穿过 4DAY EMA 为正,价格穿过 4DAY EMA 为负,AAA,AAA

价格大于 4 天 EMA,价格低于 4 天 EMA,AAA,AAA

价格大于 4 天 EMA,价格越过 4 天 EMA 为正,AAA,AAA

价格大于 4 天 EMA,价格越过 4 天 EMA 为负,AAA,AAA

价格大于 4 天 EMA,AAA,AAA,AAA

价格低于 4DAY EMA,AAA,AAA,AAA

价格穿过 4DAY EMA 为正,AAA,AAA,AAA

价格穿过 4DAY EMA 负值,AAA,AAA,AAA

0 个答案:

没有答案