我对数据帧有一个决定,如下所示。
当前我要做的是替换每个数据框的列FR
中的值,并为每个数据框创建一个名为unit
的新列
尽管我有如下所示的工作代码,但不确定这是否是编写它的最佳方法。
dataFramesDict['Cho'] = dataFramesDict['Cho'].replace({'FR' : {'Fasting' : 'Cholesterol Fasting', 'Random' : 'Cholesterol Random'}})
dataFramesDict['HDL'] = dataFramesDict['HDL'].replace({'FR' : {'Fasting' : 'Plasma fasting HDL cholesterol measurement', 'Random' : 'Plasma random HDL cholesterol measurement'}})
dataFramesDict['LDL'] = dataFramesDict['LDL'].replace({'FR' : {'Fasting' : 'Plasma fasting LDL cholesterol measurement', 'Random' : 'Plasma random LDL cholesterol measurement'}})
dataFramesDict['Tri'] = dataFramesDict['Tri'].replace({'FR' : {'Fasting' : 'Plasma fasting triglyceride measurement', 'Random' : 'Plasma random triglyceride measurement'}})
dataFramesDict['Cho']['unit'] = 'ml'
dataFramesDict['HDL']['unit'] = 'ml'
dataFramesDict['LDL']['unit'] = 'ml'
dataFramesDict['Tri']['unit'] = 'ml'
请注意,每个数据帧要替换的值均不同。但是,从代码中可以看出,所有数据帧的原始值都是相同的
您能告诉我如何进一步改进吗?
答案 0 :(得分:2)
您可以使用for
循环添加列
for key in dataFramesDict:
dataFramesDict[key]['unit'] = 'ml'
甚至
for df in dataFramesDict.values():
df['unit'] = 'ml'
如果您有替换词典,那么您也可以使用循环
replacements = {
'Cho': {'FR' : {'Fasting' : 'Cholesterol Fasting', 'Random' : 'Cholesterol Random'}},
'HDL': {'FR' : {'Fasting' : 'Plasma fasting HDL cholesterol measurement', 'Random' : 'Plasma random HDL cholesterol measurement'}},
'LDL': {'FR' : {'Fasting' : 'Plasma fasting LDL cholesterol measurement', 'Random' : 'Plasma random LDL cholesterol measurement'}},
'Tri': {'FR' : {'Fasting' : 'Plasma fasting triglyceride measurement', 'Random' : 'Plasma random triglyceride measurement'}},)
}
for key, value in replacements.items():
dataFramesDict[key] = dataFramesDict[key].replace(value)
但是,如果您没有字典,则无法更改代码。