如何按索引打印数据框列中的值?

How to print values in dataframes column by their indexes?

我有一个数据框:

id   value
742  aa
1711 bb
1731 qq
1799 ff
2741 pp

id 是索引列。我只想打印此列表中“值”列中的那些值:[742、1731、1799]。所以输出必须是:

aa
qq
ff

怎么做?

我试过这个:

for i in [742, 1731, 1799]:
    print(df[df.index == i]["value"])

但输出是:

value
742    aa
Name: value, dtype: object
value
1731    qq
Name: value, dtype: object
value
1799    ff
Name: value, dtype: object

使用 .set_index 声明 'id' 为索引,然后 .loc[...] 指定您感兴趣的索引列表。

df = pd.DataFrame({'id': [8, 13, 21, 34, 55, 89], 'val': 'for sale baby shoes never worn'.split()}).set_index('id')

print(df)
#       val
# id       
# 8     for
# 13   sale
# 21   baby
# 34  shoes
# 55  never
# 89   worn

print(df.loc[[13,89]])
#      val
# id      
# 13  sale
# 89  worn
for i in df:
    if i.index in [742, 1731, 1799]:
        # print(i.value)
        # print(i["value"])

This应该这样做:

重述问题:

ids = [
    {"id":"742", "value":"aa"},
    {"id":"1711", "value":"bb"}, 
    {"id":"1731", "value":"qq"}, 
    {"id":"1799", "value":"ff"}, 
    {"id":"2741", "value":"pp"}]

df = pd.DataFrame(data=ids)
df = df.set_index(["id"])

这会为您提供过滤后的列表:

filtered_df = df[df.index.isin(["742","1731","1799"])]