我正在尝试使用 pandas 创建一个 python 脚本,它会提示用户从 column 输入一个值'Name'(or column 0),然后在 column 中打印该值'Location'(or column 9)。到目前为止,我有以下内容,但它会打印行中的所有列。如何让它打印特定的列?import pandas as pddf = pd.read_csv("Servers.csv")user_input = raw_input("Enter server name: ")for index, row in df.iterrows(): if row[0] == user_input: print rowlabled 'Location'当我输入第一列中的值时,我只想让它打印行中的第 9列labled 'Name'。当前,当我从第一列输入值时,它正在打印行中的所有列Name。
2 回答
哔哔one
TA贡献1854条经验 获得超8个赞
添加该行print(df[df['Name'] == user_input].loc[:,'Location'].values[0])应该可以解决问题。
这是一个包含 3 行和列的数据框的简单示例:
d = {'Name': ['John', 'Laura', 'Sam'],
'Food': ['Sushi', 'Spaghetti', 'Sandwich'],
'Location': ['Houston', 'San Francisco', 'Hawaii']}
df = pd.DataFrame(data = d)
Name Food Location
0 John Sushi Houston
1 Laura Spaghetti San Francisco
2 Sam Sandwich Hawaii
如果user_input = 'John',这里是我们如何打印出他的位置:
print(df[df['Name'] == user_input].loc[:,'Location'].values[0])
这将输出字符串Houston。
这种方法避免了循环并且应该比使用 .iterrows() 更快。
添加回答
举报
0/150
提交
取消