【发布时间】:2020-09-23 08:06:57
【问题描述】:
我有一个dataframe,我使用多个条件来过滤它。代码有点像下面(recency.py)。
def recency(config):
i = config.exclude_list
sales = pd.read_excel(config.input_path + "klm sales UPD.xlsx")
df_exclude = sales[(sales["Product"].str.contains(i[0])==True)
| (sales["Product"].str.contains(i[1])==True)
| (sales["Customer"].str.contains(i[2])==True)
| (sales["Customer"].str.contains(i[3])==True)
| (sales["Customer"].str.contains(i[4])==True)
| (sales["Customer"].str.contains(i[5])==True)
| (sales["Customer"].str.contains(i[6])==True)
| (sales["Remarks"].str.contains(i[7])== True)
| (sales["Net Amount"]<10)]
这是配置类(config.py):
class config:
input_path = "/home/ram/Downloads/Data_Science/"
exclude_list = ["SCRAP ","GFT","B-MART HOME APPLIANCES","4 ELECTRONICS & APPLIANCES","DISCOUNT CORNER","CASH CUSTOMER","CASH BILL","GIFT"]
这里是主文件(main.py):
from config import config
from Recency import recency
recency(config)
这个配置是一个python文件,我在其中定义了一个带有exclude_list的类(命名配置),这是我通过主程序发送给函数(新近度)的内容。这里的问题是我在其中包含了8个项目排除列表,这可能会在未来改变。所以我可能需要对recency function(receny.py) 进行更改,这样当创建另一个config 文件时,在排除列表中包含多于(或少于)8 个项目时,我将能够使用相同的新近功能获取 df_exclude。我可以在 python 中执行此操作有哪些可能的方法?
如果这个问题有什么不清楚的地方,请在cmets中告诉我。
【问题讨论】:
标签: python dataframe if-statement filter conditional-statements