1 回答
TA贡献1111条经验 获得超0个赞
很可能有更有效的方法来解决这个问题,但下面是一种简单的暴力方法。请注意,我将原始值存储到 df org_df
test_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"])
添加回答
举报