为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据用户输入的另一列使用 Pandas 输出特定列?

如何根据用户输入的另一列使用 Pandas 输出特定列?

青春有我 2021-10-19 10:21:44
我正在尝试使用 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() 更快。


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信