亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在字典中檢查多個 if 條件的優雅方法

在字典中檢查多個 if 條件的優雅方法

慕標琳琳 2022-04-23 21:07:17
我有一個如下所示的數據框字典dataFramesDict[sheet_name] = pd.DataFrame({'Date':['2007-05-30','2107-11-30','2207-05-20','2307-05-20'],'Value': [2.4,2.5,2.6,2.7],'Test': ['Height','Weight','SBP','DBP']})我想做的是創建一個名為的新列Unit并根據Test列添加值這是我嘗試過的,但這看起來并不優雅或高效。if dataFramesDict[sheet_name]['Test'] == 'Height':    dataFramesDict[sheet_name]['unit'] == 'm'if dataFramesDict[sheet_name]['Test'] == 'Weight':    dataFramesDict[sheet_name]['unit'] == 'kg'if dataFramesDict[sheet_name]['Test'] == 'SBP':    dataFramesDict[sheet_name]['unit'] == 'millimeter'if dataFramesDict[sheet_name]['Test'] == 'DBP':    dataFramesDict[sheet_name]['unit'] == 'millimeter'請注意,這sheet_name是 Excel 工作表的一部分。我總共有 10 多張紙,我想閱讀每張紙并檢查每張紙中的測試值并根據Test列分配單位值我希望我的輸出如下所示
查看完整描述

3 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

map與_dict


前任:


d = {'Height':"m",'Weight': "kg",'SBP':'mm','DBP':'mm'}

dataFramesDict = pd.DataFrame({'Date':['2007-05-30','2107-11-30','2207-05-20','2307-05-20'],'Value': [2.4,2.5,2.6,2.7],'Test': ['Height','Weight','SBP','DBP']})

dataFramesDict["Unit"] = dataFramesDict["Test"].map(d)

print(dataFramesDict)

輸出:


         Date    Test  Value Unit

0  2007-05-30  Height    2.4    m

1  2107-11-30  Weight    2.5   kg

2  2207-05-20     SBP    2.6   mm

3  2307-05-20     DBP    2.7   mm


查看完整回答
反對 回復 2022-04-23
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

使用 Pandas 替換

df['unit'] = df.Test.replace({'Height':"m",'Weight': "kg",'SBP':'mm','DBP':'mm'})


查看完整回答
反對 回復 2022-04-23
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

請嘗試以下代碼。希望能幫助到你:


unitDict = {'Height':'m', 'Weight': 'Kg', 'SBP':'millimeter', 'DBP':'millimeter'}



def checkUnit(data):

  if unitDict[data] is not None:

    return unitDict[data]


df['Unit']=list(map(checkUnit, df['Test']))


print(df)


查看完整回答
反對 回復 2022-04-23
  • 3 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號