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

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

根據(jù)列表中至少包含一個(gè)元素的列表列過濾 df(2 個(gè)列表的交集)

根據(jù)列表中至少包含一個(gè)元素的列表列過濾 df(2 個(gè)列表的交集)

BIG陽 2021-11-23 16:46:04
說我有:mylist = ["test", "new"]df = pd.DataFrame([[["test", "whatever"]], [["tes", "test_in"]], [["new2", "new1"]]], columns=["a"])df    a0   [test, whatever]1   [tes, test_in]2   [new2, new1]我想過濾并只獲取 mylist 中至少有一個(gè)值的行:    a0   [test, whatever]我不能這樣做: df.query("a.str.contains('|'.join(@mylist))", engine='python') 因?yàn)槟菢游視?huì)得到部分匹配。我在想這樣的事情: df[df.apply(lambda x: set(x['a']) & set(mylist), axis=1)]但這不起作用。
查看完整描述

3 回答

?
寶慕林4294392

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

您很接近,僅將空集的集轉(zhuǎn)換為 bool 到False,否則True:


df = df[df['a'].apply(lambda x: bool(set(x) & set(mylist)))]

print (df)

                  a

0  [test, whatever]

選擇:


df = df[[bool(set(x) & set(mylist)) for x in df['a']]]

或者:


df = df[[bool(set(x).intersection(mylist)) for x in df['a']]]


查看完整回答
反對 回復(fù) 2021-11-23
?
胡子哥哥

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

isin重新創(chuàng)建列表列后檢查


df[pd.DataFrame(df.a.tolist()).isin(mylist).any(1)]

Out[23]: 

                  a

0  [test, whatever]


查看完整回答
反對 回復(fù) 2021-11-23
?
qq_花開花謝_0

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

這對我有用:


mylist = ["test", "new"]

df = pd.DataFrame([[["test", "whatever"]], [["tes", "test_in"]], [["new2", "new1"]]], columns=["a"])

print(df)


    def func(x):

        for e in x[0]:

            if(e in mylist):

                return True

            else:

                continue

        return False


    df = df.loc[df.apply(lambda x: func(x), axis=1), :]

    print(df)


查看完整回答
反對 回復(fù) 2021-11-23
  • 3 回答
  • 0 關(guān)注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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