Pandas pythonic方法从pd.Series中提取值和索引作为元组

时间:2016-03-09 19:09:11

标签: python pandas

我将Pandas DataFrame定义为client.destroy_tweet 13123123123 ,例如:

a = pd.DataFrame({'val':[1,2,3,4,5,6],'id':[2,1,4,3,0,5]})

此外,我在其上执行了一些功能,例如In [0]: import pandas as pd In [1]: a = pd.DataFrame({'val':[1,2,3,4,5,6],'id':[2,1,4,3,0,5]}) In [2]: a Out[2]: id val 0 2 1 1 1 2 2 4 3 3 3 4 4 0 5 5 5 6 ,以便:

a.sort('id',inplace=True)

注意索引是如何无序的。

之后,我希望通过执行In [3]: a Out[3]: id val 4 0 5 1 1 2 0 2 1 3 3 4 2 4 3 5 5 6 之类的操作来提取信息,这会返回a.val[a.id >=2]

pd.Series

如果我想提取In [4]: a.val[a.id >=2] Out[4]: 0 1 3 4 2 3 5 6 Name: val, dtype: int64 我做pd.Series的第一个值,以及索引a.val[a.id >= 2].iloc[0],并将它们作为元组提取。

有没有办法在一行代码中将两个值都提取为元组?是否有一种pythonic方式?

1 个答案:

答案 0 :(得分:2)

免责声明:我不是一个真正的熊猫用户(虽然我喜欢在这里阅读熊猫问题),所以可能有更好的方法......

那就是说,如果pandas没有提供更好的方法,我只会写一个函数:

def extract_first(series):
    return series.iloc[0], series.index[0]

extract_first(a.val[a.id >= 2])

我希望这会让你只执行一次相对昂贵的索引,这可能会对更大的系列有所帮助。

查看docs,您似乎也可以使用iteritems

next(a.val[a.id >= 2].iteritems())