[英]Pandas: selecting multiple columns programmatically
現在,我選擇多行,其中某些列以這種方式具有特定值:
df.loc[(df['col1'] == val1) & (df['col2'] == val2)]
有沒有辦法我可以通過編程的方式提供列鍵/值作為字典? 像這樣:
def get_df(cols)
df.loc[ (df[k] == v) for k,v in cols.items() ]
但是我不確定如何將這些表達“與”。 有任何想法嗎?
您可以從字典創建一個Series並進行比較:
import numpy as np
import pandas as pd
np.random.seed(0)
df = pd.DataFrame(np.random.randint(0, 5, (100, 3)), columns = list("ABC"))
cols = {"A": 0, "B": 3, "C": 3}
df[(df == pd.Series(cols)).all(axis=1)]
Out:
A B C
94 0 3 3
或者,將np.logical_and
與reduce
np.logical_and
使用:
df[np.logical_and.reduce([(df[k] == v) for k,v in cols.items()])]
A B C
94 0 3 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.