比较多列中的值并返回所有递减区域



我有一个类似于以下的数据框架,假设我有两年不同地区的销售额:

2020地区1销售额公司100000公司3
公司 2021地区1销售额 2021地区2销售额
公司2 10000 17000
number_of_regions = 2 # You have to change this
def find_declined_regions(row):
result = []
for i in range(1, number_of_regions+1):
if row[f"2021 Region {i} Sales"] < 25000 and row[f"2020 Region {i} Sales"] > 25000:
result.append(f"Region {i}")
return "; ".join(result)
df.apply(find_declined_regions, axis=1)    

df是您的DataFrame,您必须根据您的问题更改number_of_regions

编辑:如果列名称都不同,则有两种情况:

1-你有一个所有地区的列表,所以你可以这样做:

for region in all_regions:
if row[f"2021 {region} Sales"] < 25000 and row[f"2020 {region} Sales"] > 25000:

2-你没有一个所有地区的列表,所以你必须创建一个:

all_regions = [col[5:-6] for col in df.columns[1:int(len(df.columns)/2)+1]]

最新更新