提问者:小点点

用序列索引获取第一个值


给予

import pandas as pd
df = pd.DataFrame({'lowercase':['a','b','c','d']},
                       index=[0,1,3,4])

# print(df)

print(df['lowercase'].iat[0])

我可以得到'a',但是我想要得到第一个索引(它是0)和'a'返回作为两个值,我应该怎么做呢?


共1个答案

匿名用户

您可以使用df.itertuples,它返回一个map对象。

def get_item(idx):
    it = df.itertuples()
    while idx:
        next(it)
        idx = idx-1
    return next(it)

a,b = get_item(0)
# a = 0 , b = 'a'
c,d = get _item(1)
# c = 1, d = 'b'

您甚至可以使用IterTools中的islice获取片。

def get_item(start,end=None):
    it = df.itertuples()
    if end is None:
        while idx:
            next(it)
            idx = idx-1
        return next(it)
    return list(map(tuple,islice(it,start,end)))

get_item(1, 4)
# [(1, 'b'), (3, 'c'), (4, 'd')]

如果只需要第一个值

a,b = next(df.itertuples())
# a = 0, b = 'a'