簡體   English   中英

熊貓:以編程方式選擇多個列

[英]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_andreduce 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM