簡體   English   中英

根據請求的列獲取 dataframe (python) 的子集

[英]Get subset of dataframe (python) based on requested column

我在dataframe中的 dataframe 有以下問題:

我有一個帶有 ID 列(不是索引)和其他列的dataframe 現在我想編寫一個代碼,返回一個新的 dataframe,其中所有行在 columnx 中具有相同的值,作為請求的項目 ID。 它還應該包含 dataframe df 的所有列。

def subset(itemID):

 columnxValue = df[df['ID'] == itemID]['columnx']
 subset = df[df['columnx'] == columnxValue]

 return subset

如果我這樣做,我總是會收到錯誤“只能比較標記相同的系列對象

我把問題改得更清楚了。

你的意思是這樣的嗎? 您將ItemID作為參數提供給subset function。 然后它檢查ItemID是否對應於ID列中的值。 它從ItemID等於ID列中的值的行返回columnx的值。

def subset(itemID):
 columnValueRequest = df[df['ID'] == itemID][columnx]
 subset = df[df[columnx] == columnValueRequest]
 return subset

您可以按如下方式使用.loc

def subset(itemID):
    columnValueRequest = df.loc[df['ID'] == itemID, 'columnx'].iloc[0]
    subset1 = df[df['columnx'] == columnValueRequest]
    return subset1

當您想要獲取一個值時,您必須進一步使用.iloc[0]來獲取(第一個)值,而不是變量columnValueRequest的 Series。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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