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

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

根據(jù)許多列和值從數(shù)據(jù)框中獲取行

根據(jù)許多列和值從數(shù)據(jù)框中獲取行

一只斗牛犬 2022-07-05 19:21:16
這是一個非常簡單的娛樂,雖然真正的 DF 有更多的列我的數(shù)據(jù)框:    length  width  height  age0        1      5       8   121        1      5       8   122        1      5       8   213        1      5       8   154        1      5       8   155        1      6       9   126        2      6       9   327        2      6       9   328        2      6       7   989        3      4       7   1210       3      4       7   5411       3      4       7   21我想獲取 和 的width == 6 行 age ==32。很簡單:d[(d['width']==6) & (d['age']==32)]   length  width  height  age6       2      6       9   327       2      6       9   32有沒有辦法讓這更加自動化?假設(shè)我有一個列和值列表。在這種情況下,它仍然只有兩列/值,但我正在考慮處理 15 個或更多:cols = ['width','age']vals = [6,32]現(xiàn)在構(gòu)建一個空數(shù)據(jù)框并使用以下內(nèi)容更新行append:df_temp = pd.DataFrame()for col,val in zip(cols,vals):    if df_temp.empty:        df_temp = df[df[col]==val]    else:        df_temp.append(df[df[col]==val])   length  width  height  age5       1      6       9   126       2      6       9   327       2      6       9   328       2      6       7   98這相當(dāng)于使用or符號|:d[(d['width']==6) | (d['age']==32)]我怎樣才能使它自動化,AND而不是or?我已經(jīng)嘗試了一些完全離譜的方法,但它不起作用,它似乎仍然等同于|而不是&.[d[(d[col]==val) & (d[col]==val)] for col, val in zip(cols,vals)][0]   length  width  height  age5       1      6       9   126       2      6       9   327       2      6       9   328       2      6       7   98我的可重現(xiàn)數(shù)據(jù)框:import pandas as pdpd.DataFrame({'length': pd.Series([1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3],dtype='int64',index=pd.RangeIndex(start=0, stop=12, step=1)), 'width': pd.Series([5, 5, 5, 5, 5, 6, 6, 6, 6, 4, 4, 4],dtype='int64',index=pd.RangeIndex(start=0, stop=12, step=1)), 'height': pd.Series([8, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7],dtype='int64',index=pd.RangeIndex(start=0, stop=12, step=1)), 'age': pd.Series([12, 12, 21, 15, 15, 12, 32, 32, 98, 12, 54, 21],dtype='int64',index=pd.RangeIndex(start=0, stop=12, step=1))}, index=pd.RangeIndex(start=0, stop=12, step=1))
查看完整描述

2 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個贊

這是一種使用assignwith df.equsing locand的方法all

df[df.eq(df.assign(**dict(zip(cols,vals)))).loc[:,cols].all(1)]

   length  width  height  age

6       2      6       9   32

7       2      6       9   32


查看完整回答
反對 回復(fù) 2022-07-05
?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個贊

我們可以通過在這里使用底層的 numpy 數(shù)組來簡化這一點(diǎn):


df[(df[cols].values == vals).all(1)] 


     length  width  height  age

6       2      6       9   32

7       2      6       9   32


查看完整回答
反對 回復(fù) 2022-07-05
  • 2 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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