如何按索引打印数据框列中的值?
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"])]
我有一个数据框:
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"])]