根据请求的列获取dataframe(python)的子集

2024-09-30 06:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python中的dataframe有以下问题:

我有一个带有ID列(不是索引)的dataframe和其他列。 现在我想编写一个代码,返回一个新的数据框,其中所有行在columnx中的值都与请求的项ID相同。它还应该包含数据框df的所有列

def subset(itemID):

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

 return subset

如果我这样做,我总是得到错误“只能比较相同标签的系列对象

我把问题改得更清楚了


Tags: 数据对象代码iddataframedfreturndef
2条回答

您可以按如下方式使用^{}

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

由于要获取值,而不是变量columnValueRequest的序列,因此必须进一步使用.iloc[0]来获取(第一个)值

你是说像这样的事吗? 将ItemID作为subset函数的参数。然后检查ItemID是否对应于ID列中的值。它从ItemID等于ID列中的值的行返回columnx中的值

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

相关问题 更多 >

    热门问题