我试图在dataframe的末尾添加一个新列,但是值会根据其他两列中的信息而变化。总的结果应该是一个新的列,其中另一列的绝对值已被重新缩放,将绝对值除以该列中的最高值
我试图屏蔽数据帧,但在for循环的末尾,整个df没有发生任何变化(即,当我请求海德博士()没有新列)
for n in list(top_dict.keys()):
for c in clusters:
mask=(data.season==n) & (data.cluster==c)
for attribute in panel:
ratio_list=[]
for kpi in data[mask][attribute]:
try:
ratio_list.append(kpi/top_dict[n][c][attribute]['Score'])
except:
ratio_list.append(0)
data[mask]['%s_ratio'%attribute]=ratio_list
运行代码后,旧的数据帧保持不变,不添加额外的列。你知道吗
数据样本:
season cluster val_1 val_2 val_3
2014 A 0 5 8
2016 B 1 7 0
2015 C 2 9 8
2015 C 3 3 9
2017 A 4 5 1
你应该看到这个相当明确的警告:
这意味着
data[mask]
只是原始数据帧上的一个片段,不应尝试更改其中的元素,而应使用全局loc
还原到原始数据帧:这应该足以消除警告并更改数据帧。你知道吗
相关问题 更多 >
编程相关推荐