PandasPython法提取价值和指数pd系列作为tup

2024-04-16 18:40:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我将Pandas数据帧定义为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),这样:

^{pr2}$

注意索引是如何无序的。在

之后,我想通过执行类似于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],并为索引a.val[id >= 2].index[0],并将它们作为一个元组。在

有没有办法在一行代码中将这两个值作为元组提取?有Python的方法吗?在


Tags: 数据函数inimportiddataframepandas定义
1条回答
网友
1楼 · 发布于 2024-04-16 18:40:37

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

也就是说,如果pandas不能提供更好的方法,我只需要编写一个函数:

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

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

我希望这将允许您只执行一次相对昂贵的索引,这对更大的系列是有帮助的。


看看docs,您似乎还可以使用iteritems

^{pr2}$

相关问题 更多 >