如果条件不是tru,那么我如何使用pandas dataframe,这样我就只能得到真正的行而什么也得不到

2024-09-30 10:28:00 发布

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

假设我有一个熊猫数据帧dfObject,比如说:

     A     B         C
1   red   square    big
2   green circle    small
3   blue  triangle  big

我现在正在尝试创建另一个数据帧dfBigObject 为此,我只想从dataframe中选择那些在C列中有big的行

所以,dfBigObject应该是这样的:

    A     B         C
1   red   square   big
2   blue  triangle big

我试着用df.where来做这个,但是没有成功。你知道吗

我就是这么做的:

dfBigObject = dfObject.where(dfObject.C == 'big')

但是,返回:

     A     B         C
1   red   square    big
2    
3   blue  triangle  big

我能做什么?你知道吗

创建数据帧的代码:

dfObject = pd.DataFrame()
dfObject.set_value(1, 'A', 'red')
dfObject.set_value(1, 'B', 'square')
dfObject.set_value(1, 'C', 'big')
dfObject.set_value(2, 'A', 'green')
dfObject.set_value(2, 'B', 'circle')
dfObject.set_value(2, 'C', 'small')
dfObject.set_value(3, 'A', 'blue')
dfObject.set_value(3, 'B', 'triangle')
dfObject.set_value(3, 'C', 'big')

Tags: 数据dataframevaluegreenblueredwheresmall
2条回答

我想你需要^{}^{}

dfBigObject = dfObject[dfObject['C'] == 'big']
print (dfBigObject)
      A         B    C
1   red    square  big
3  blue  triangle  big

或:

dfBigObject = dfObject.query("C == 'big'")
print (dfBigObject)
      A         B    C
1   red    square  big
3  blue  triangle  big

如果不想保留数据帧的原始形状(布尔索引),有一种方法:

dfBigObject = dfObject[dfObject ['C'] == 'big']

相关问题 更多 >

    热门问题