Python 有没有更像蟒蛇的写作方式?

Python 有没有更像蟒蛇的写作方式?,python,pandas,Python,Pandas,我想让它更像蟒蛇 user_df[-1:]['status_id'].values[0] in {3,5} 我尝试了user\u id.ix[-1:,'status\u id'].isin([3,5]),但没有成功 有什么建议吗?顶级版本可以工作,但看起来有点奇怪。您可以尝试: user_id['status_id'].iloc[-1:].isin([3,5]) 样本: user_id = pd.DataFrame({'status_id':[1,2,3]}) print (user_id)

我想让它更像蟒蛇

user_df[-1:]['status_id'].values[0] in {3,5}
我尝试了
user\u id.ix[-1:,'status\u id'].isin([3,5])
,但没有成功

有什么建议吗?顶级版本可以工作,但看起来有点奇怪。

您可以尝试:

user_id['status_id'].iloc[-1:].isin([3,5])
样本:

user_id = pd.DataFrame({'status_id':[1,2,3]})
print (user_id)
   status_id
0          1
1          2
2          3

#iloc without : [-1] return scalar
print (user_id['status_id'].iloc[-1] in set({3,5}))
True

#iloc with : [-1:] return vector - Series
print (user_id['status_id'].iloc[-1:].isin([3,5]))
2    True
Name: status_id, dtype: bool
您可以尝试:

user_id['status_id'].iloc[-1:].isin([3,5])
样本:

user_id = pd.DataFrame({'status_id':[1,2,3]})
print (user_id)
   status_id
0          1
1          2
2          3

#iloc without : [-1] return scalar
print (user_id['status_id'].iloc[-1] in set({3,5}))
True

#iloc with : [-1:] return vector - Series
print (user_id['status_id'].iloc[-1:].isin([3,5]))
2    True
Name: status_id, dtype: bool

isin
可能会稍微快一点(你必须检查的值越多,你会注意到的速度就越快……但即使对于大型集合,它也不会有太大的区别……(我怀疑在本例中它会快一点……它可能会慢一点)……但是
val in set()
是非常危险的pythonic(事实上比pd.isin更重要)


您正在使用
pandas.isin
numpy.in1d
集合测试单个值,与仅在
中使用
和一个集合(该集合是
O(1)
查找相比,您将在进入C并返回python时产生大量的时间开销。。。(在任何一种情况下,时间片在人类时间尺度上都是不存在的)

isin
可能会稍微快一点(需要检查的值越多,你会注意到的速度就越快……但即使是大型集合,它也不会有很大的差异……(我怀疑在本例中它会更快……它可能会稍微慢一点)…但是set()中的
val
是非常危险的pythonic(实际上比
pd.isin
更危险)


您正在使用
pandas.isin
numpy.in1d
集合测试单个值,与仅在
中使用
和一个集合(该集合是
O(1)
查找相比,您将在进入C并返回python时产生大量的时间开销。。。(在这两种情况下,时间片在人类时间尺度上都不存在)

还有熊猫函数处理
NaN
非常好,但我认为这不适用于这个问题域……他正在测试一个集合中的单个值……NaN不在那个集合中。我认为熊猫函数和python函数一般都是对的。但这样说你是对的。也许另一个问题是pythonic和pandaic;)@jezrael:“pandorable”。而且熊猫函数处理
NaN
非常好,但我认为这不适用于这个问题域…他正在测试一个集合中的单个值…NaN不在那个集合中。我认为熊猫函数和python函数一般都是对的。但这样说你是对的。也许另一个问题是pythonic和pandaic;)@jezrael:“pandorable”。回答得很好。特别是如果他真的想用pandas
isin
来做这个(如他的问题所示)是的,回答得很好。我选择了
user\u id['status\u id'].iloc[-1]。isin([3,5])
只是为了保持一致性。谢谢!回答得很好。特别是如果他真的想用pandas
isin
(如他的问题所示)是的,回答很好。我选择了
user\u id['status\u id'].iloc[-1]。isin([3,5])
只是为了保持一致性。谢谢!