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

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

將嵌套列表與數據框匹配

將嵌套列表與數據框匹配

鳳凰求蠱 2021-11-30 16:41:40
我有一個嵌套列表,如下所示,[['a'], ['b'], [], ['d', 'a'], ['c', 'd', 'a']]我還有一個數據框,它用一個值映射字母,即  col1  value0    a      21    b      52    c      43    d      9我的目標是將列表中的字母與數據框匹配并返回相應的值。如果有超過 1 個字母,我需要它們值的總和。我的預期結果是一個平面列表,如下所示,[2, 5, 0, 11, 15]我嘗試做一個 for 循環,但無法讓它工作。for i in l1:    if len(i) == 0:        print(0)    elif len(i) > 1:        for j in i:            print(d1[d1['col1'] == j]['value'])    else:        print(d1[d1['col1'] == i]['value'])此外,這里的效率是關鍵,因為數據集很大數據l1 = [['a'], ['b'], [], ['d', 'a'], ['c', 'd', 'a']]d1 = pd.DataFrame({'col1':['a', 'b', 'c', 'd'], 'value':[2, 5, 4, 9]})會議詳情print(sys.version)3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

IIUC for 循環 isin

[d1.loc[d1.col1.isin(x),'value'].sum()for x in l1]
Out[883]: [2, 5, 0, 11, 15]


查看完整回答
反對 回復 2021-11-30
  • 1 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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