我有以下问题:尝试将 'time' 和 'y_corrected' 添加到新数据框中时出现错误。
我需要计算一个变量“y_corrected”,并将其添加到新的数据框中。为了计算这个变量,我使用 group 函数根据两个条件循环遍历数据集:文件名和处理。最终数据帧应包含文件名、治疗、时间、y_corrected。
file = pd.read_excel(r'C:.....xlsx')
grouped = file.groupby(['File name', 'Treatment'])
######################################## output dataframe #####################################
new = pd.DataFrame(columns=['File name','Treatment', 'Time', 'y_corrected'])
new.columns = ['File name', 'Treatment', 'Time', 'y_corrected']
######################################## correction ########################################
for key, g in grouped:
a = g['y'].max()
b = g['y'].min()
y_corrected = (g['y'] - b) / a
row = {'File name': key[0], 'Treatment': key[1], 'Time': time[2], 'y_corrected': y_corrected[3]}
new = new.append(row, ignore_index=True)
print(new)
这是错误: result = self.index.get_value(self, key)
您不必遍历不同的组。你只需要在你的数据帧上使用 pandas 魔法:
file = pd.read_excel(r'C:.....xlsx')
file['y_corrected'] = file.groupby(['File name', 'Treatment'])['y'].apply(lambda x: (x-min(x))/max(x))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句