如何将相同的代码块包裹在循环中(或应用功能)



我想在一个循环中包装一个代码块,该代码对来自不同CSV文件的导入数据帧执行相同的操作。考虑一个例子:我导入

apples=pd.read_csv("pathdataset_1.csv")
oranges=pd.read_csv("pathdataset_2.csv")

导入数据范围的结构,格式和列名是完全相同的。然后,我在第一组上执行操作。例如

apples_1 = apples [["column A", "column B"]]
apples_1. columns= ["bad", "good"]
apples_2 = apples [["column C", "column D"]]
apples_2. columns = [ "bad", "good"]
apples_3=pd.concat([apples_1,apples_2],axis=0) 

然后,但是我必须在第二个数据框架(Oranges)上执行绝对相同的操作。我提醒我,第二个数据框具有与第一个列名相同的列名,并且在操作后将具有相同的重列列。

 oranges_1 = oranges [["column A", "column B"]]
 oranges_1. columns= ["bad", "good"]
 oranges_2 = oranges [["column C", "column D"]]
 oranges_2. columns = [ "bad", "good"]
 oranges_3=pd.concat([oranges_1,oranges_2],axis=0) 

,如果我有10个数据范围,并且必须一遍又一遍地编写相同的代码执行相同的操作,那不是很好。因此,我想知道是否有一种优雅的方式可以使用循环进行操作,或者应用功能。提前感谢您的帮助。

for i in range(1,11):
    df = pd.read_csv("pathdataset_{0}.csv".format(i))
    adf=pd.concat([df[["column A", "column B"]],df[["column C", "column D"]]],axis=0)
    adf.columns = [ "bad", "good", "bad", "good"]
    # do operations on adf

循环在每个CSV上,将其读取到DF中并在其上进行操作。只要所有CSV文件具有相同的列名(如问题所述),它就应该起作用。

最新更新