在pandas中的元组列表中选择行

时间:2016-10-01 17:41:37

标签: python pandas tuples

我在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)....]

的形式

3 个答案:

答案 0 :(得分:2)

您可以使用tuple

apply进行切片
df[df['Value'].apply(lambda x: x[1] <= 2)]

Image

似乎,它是一个元组列表而不是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