首页 > 解决方案 > 使用系列中的索引获取第一个值

问题描述

给定

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'作为两个值返回,我该怎么办?

标签: pythonpandas

解决方案


您可以使用df.itertupleswhich 返回地图对象。

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'

您甚至可以使用isliceitertools 获取切片。

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'

推荐阅读