第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python:為 eactly 2 PROD_ID 查找 ORDER_ID

Python:為 eactly 2 PROD_ID 查找 ORDER_ID

暮色呼如 2022-11-09 16:28:05
我有下面的python列表列表。我需要找出僅訂購(gòu) P1 和 P2(除了 P1 和 P2)產(chǎn)品的 order_ids。預(yù)期答案:5 和 9# ORDER_ID, PROD_ID, ORDER_DT, QUANTITYorders = [[9, 'P1', '2020-01-01', 1],[9, 'P2', '2020-01-01', 1],[6, 'P1', '2020-01-01', 1],[6, 'P3', '2020-01-01', 1],[6, 'P4', '2020-01-01', 1],[7, 'P1', '2020-01-01', 1],[7, 'P2', '2020-01-01', 1],[7, 'P3', '2020-01-01', 1],[5, 'P2', '2020-01-01', 1],[5, 'P1', '2020-01-01', 1]]
查看完整描述

2 回答

?
鴻蒙傳說(shuō)

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

考慮使用pandas- 對(duì)于此類任務(wù)來(lái)說(shuō)更好:


import pandas as pd


orders = [

[9, 'P1', '2020-01-01', 1],

[9, 'P2', '2020-01-01', 1],

[6, 'P1', '2020-01-01', 1],

[6, 'P3', '2020-01-01', 1],

[6, 'P4', '2020-01-01', 1],

[7, 'P1', '2020-01-01', 1],

[7, 'P2', '2020-01-01', 1],

[7, 'P3', '2020-01-01', 1],

[5, 'P2', '2020-01-01', 1],

[5, 'P1', '2020-01-01', 1]

]


cols="ORDER_ID,PROD_ID,ORDER_DT,QUANTITY".split(",")


df=pd.DataFrame(orders, columns=cols)


res=df.groupby("ORDER_ID")["PROD_ID"].agg(set).eq({'P1', 'P2'})

res=res.loc[res].index


res=df.loc[df["ORDER_ID"].isin(res)]

print(res)


#if you want end up with the numpy:


print(res.to_numpy())


#to get just the order_id-s:


print(res["ORDER_ID"].unique())

輸出:


>>> print(res)


   ORDER_ID PROD_ID    ORDER_DT  QUANTITY

0         9      P1  2020-01-01         1

1         9      P2  2020-01-01         1

8         5      P2  2020-01-01         1

9         5      P1  2020-01-01         1


>>> print(res.to_numpy())


[[9 'P1' '2020-01-01' 1]

 [9 'P2' '2020-01-01' 1]

 [5 'P2' '2020-01-01' 1]

 [5 'P1' '2020-01-01' 1]]


>>> print(res["ORDER_ID"].unique())


[9 5]


查看完整回答
反對(duì) 回復(fù) 2022-11-09
?
桃花長(zhǎng)相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以使用itertools.groupby. 這樣,您可以根據(jù)訂單 ID 對(duì)產(chǎn)品進(jìn)行分組,然后將所有相關(guān)訂單放在一個(gè)列表中。然后,您只需要確保產(chǎn)品 ID 匹配。就像是:


from itertools import groupby

from operator import itemgetter


products = []

for key, group in groupby(orders, key=itemgetter((0))):

    if {prod[1] for prod in group} == {'P1', 'P2'}:

        products.append(key)


print(products)

這確實(shí)給出了:


[9, 5]

這假設(shè)列表orders是根據(jù)訂單 ID 排序的,如示例中所示。


查看完整回答
反對(duì) 回復(fù) 2022-11-09
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)