我将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方式?
答案 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())