我有以下格式的大熊猫据帧行:Python的大熊猫:基于标准
df.head()
y y_pred
599 0 0
787 9 9
47 2 2
1237 1 1
1069 6 6
我想找到的行/索引号 - 其中y = y_pred!
我想通过Select
来做,但我无法做到。请帮忙。
TIA
我有以下格式的大熊猫据帧行:Python的大熊猫:基于标准
df.head()
y y_pred
599 0 0
787 9 9
47 2 2
1237 1 1
1069 6 6
我想找到的行/索引号 - 其中y = y_pred!
我想通过Select
来做,但我无法做到。请帮忙。
TIA
使用query
返回df
子集:
df = df.query('y != y_pred').index
样品:
与个print (df)
y y_pred
599 0 1 <-values changed for match
787 9 9
47 2 2
1237 1 1
1069 6 3 <-values changed for match
df = df.query('y != y_pred').index
print (df)
Int64Index([599, 1069], dtype='int64')
解决办法是:
df1 = df[df.y != df.y_pred].index
print (df1)
Int64Index([599, 1069], dtype='int64')
或者其他answer。
为了检查不同的值:
print (df.query('y != y_pred'))
y y_pred
599 0 1
1069 6 3
print (df[df.y != df.y_pred])
y y_pred
599 0 1
1069 6 3
很高兴能帮助你!美好的一天! – jezrael
尝试:
df.index[df.y != df.y_pred]
让我们改变你的样本数据
df.iloc[0, 0] = 1
df.iloc[3, 1] = 0
print(df)
y y_pred
599 1 0
787 9 9
47 2 2
1237 1 0
1069 6 6
那就试试我们的代码
df.index[df.y != df.y_pred]
Int64Index([599, 1237], dtype='int64')
为了更高的效率,使用底层numpy
阵列
df.index.values[df.y.values != df.y_pred.values]
array([ 599, 1237])
你可以用
df.loc[(df.y != df.y_pred).values]
y y_pred
599 1 0
1237 1 0
我重新打开的问题,因为它是关于过滤,但不同的是输出为'index' – jezrael