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

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

如何在pandas中選擇可變列數(shù)匹配的行?

如何在pandas中選擇可變列數(shù)匹配的行?

ibeautiful 2021-06-01 20:21:08
所以我有一個 Pandas 數(shù)據(jù)框,其中列數(shù)是可變的。我只想保留那些列的子集匹配的行。一個例子:Name, Surname, Class1, Class2, Class3John  Smith       1       1      -1   Ned   Walker     -1      -1      -1Walter White      1       1       1從這個數(shù)據(jù)框中,我只想留下 Class1、Class2 和 Class3 匹配的行,因此輸出將是:Name, Surname, Class1, Class2, Class3Ned   Walker     -1      -1      -1Walter White      1       1       1但是,有時“類”列的數(shù)量從 1 到 4 不等,因此我可以獲得這樣的數(shù)據(jù)框:Name, Surname, Class1, Class2John  Smith       1       1Ned   Walker     -1      -1Walter White      1       1我只希望 Class1 和 Class2 匹配?;蜻@個:Name, Surname, Class1, Class2, Class3, Class4John  Smith       1       1      -1      1Ned   Walker     -1      -1      -1      1Walter White      1       1       1      1從 1 到 4 的所有類都需要具有相同的值。什么是一種有效的方法來做到這一點?
查看完整描述

2 回答

?
慕雪6442864

TA貢獻1812條經(jīng)驗 獲得超5個贊

Zero 的回答.nunique(axis=1).eq(1)顯然是最熊貓式的方法,但為了將來參考,這也有效:


import pandas as pd

import numpy as np


np.random.seed(seed=42)

df = pd.DataFrame(np.random.randint(0,2,size=(10,3)))

print(df)

print('\n')

print(df.loc[np.all([df[col] == df.iloc[:,0] for col in df],axis=0)])

如果您發(fā)現(xiàn)自己需要檢查例如特定值(只需將其替換為df.iloc[:,0]您想要的任何值)或其他邏輯條件,這可能會很有用。


查看完整回答
反對 回復(fù) 2021-06-09
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

使用filter和nunique


In [808]: df[df.filter(like='Class').nunique(1).eq(1)]

Out[808]:

     Name Surname  Class1  Class2  Class3  Class4

2  Walter   White       1       1       1       1

細(xì)節(jié)


In [809]: df

Out[809]:

     Name Surname  Class1  Class2  Class3  Class4

0    John   Smith       1       1      -1       1

1     Ned  Walker      -1      -1      -1       1

2  Walter   White       1       1       1       1


In [810]: df.filter(like='Class')

Out[810]:

   Class1  Class2  Class3  Class4

0       1       1      -1       1

1      -1      -1      -1       1

2       1       1       1       1


In [811]: df.filter(like='Class').nunique(1)

Out[811]:

0    2

1    2

2    1

dtype: int64


In [812]: df.filter(like='Class').nunique(1).eq(1)

Out[812]:

0    False

1    False

2     True

dtype: bool


查看完整回答
反對 回復(fù) 2021-06-09
  • 2 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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