猿问

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

我正在尝试使用 pandas 创建一个 python 脚本,它会提示用户从 column 输入一个值'Name'(or column 0),然后在 column 中打印该值'Location'(or column 9)。


到目前为止,我有以下内容,但它会打印行中的所有列。如何让它打印特定的列?


import pandas as pd


df = pd.read_csv("Servers.csv")

user_input = raw_input("Enter server name: ")


for index, row in df.iterrows():

    if row[0] == user_input:

        print row

labled 'Location'当我输入第一列中的值时,我只想让它打印行中的第 9列labled 'Name'。


当前,当我从第一列输入值时,它正在打印行中的所有列Name。


青春有我
浏览 260回答 2
2回答

哔哔one

添加该行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        Location0   John    Sushi       Houston1   Laura   Spaghetti   San Francisco2   Sam     Sandwich    Hawaii如果user_input = 'John',这里是我们如何打印出他的位置:print(df[df['Name'] == user_input].loc[:,'Location'].values[0])这将输出字符串Houston。这种方法避免了循环并且应该比使用 .iterrows() 更快。
随时随地看视频慕课网APP

相关分类

Python
我要回答