catspeake
很可能有更有效的方法来解决这个问题,但下面是一种简单的暴力方法。请注意,我将原始值存储到 df org_dftest_values = org_df["Name"]quarter_values = org_df.columns.drop(["Name", "MinRange", "MaxRange"])new_data = []for test in test_values: min_value = org_df.loc[org_df["Name"]==test]["MinRange"].item() max_value = org_df.loc[org_df["Name"]==test]["MaxRange"].item() for quarter in quarter_values: if (org_df.loc[org_df["Name"]==test][quarter].item() < min_value) or (org_df.loc[org_df["Name"]==test][quarter].item() > max_value): new_data.append([ quarter, test, min_value, max_value, org_df.loc[org_df["Name"]==test][quarter].item() ]) new_df = pd.DataFrame(new_data, columns=["Quarter", "Name", "MinRange", "MaxRange", "Value"])