我在python中有一个元组列表如下:
Index Value
0 (1,2,3)
1 (2,5,4)
2 (3,3,3)
如何从中选择第二个值小于或等于2的行?
编辑:
基本上,数据采用[(1,2,3), (2,5,4), (3,3,3)....]
答案 0 :(得分:2)
您可以使用tuple
:
apply
进行切片
df[df['Value'].apply(lambda x: x[1] <= 2)]
似乎,它是一个元组列表而不是DF
:
要返回list
:
data = [item for item in [(1,2,3), (2,5,4), (3,3,3)] if item[1] <= 2]
# [(1, 2, 3)]
改为返回series
:
pd.Series(data)
#0 (1, 2, 3)
#dtype: object
答案 1 :(得分:1)
df[df["Value"].str[1] <= 2]
您可以阅读此内容以获取更多详情 - http://pandas.pydata.org/pandas-docs/stable/text.html#indexing-with-str
答案 2 :(得分:0)
只是把它放在那里。你应该阅读mcve。你的问题很混乱,因为它看起来好像你有2个好的答案而且你不满意。然后你编辑你的问题更清楚,但几乎没有。
好的,现在我的编辑已经完成了。 <强> 设置 强>
这就是我假设我正在使用
# list of tuples
lot = [(1, 2, 3), (2, 5, 4), (3, 3, 3)]
所需的输出
我认为。顺便说一句,与熊猫无关
[(a, b, c) for a, b, c in lot if b <= 2]
[(1, 2, 3)]
与pandas
但是,因为你确实标记了这个pandas
s = pd.Series(lot)
@ TrigonaMinima的答案,如果这对您有用,请给予他们信任。
s[s.str[1].le(2)]
0 (1, 2, 3)
dtype: object