【问题标题】:search a specific column in excel using python使用python搜索excel中的特定列
【发布时间】:2018-04-11 20:04:45
【问题描述】:

我是编码新手,想将工作的某些方面自动化以提高效率。我正在使用 python 3.6 编写代码来读取 excel 文件(xlsx)。具体来说,我希望它搜索用户输入的特定字符串“driver_name”的特定工作表(第一张工作表)和特定列(“当前驱动程序”)。对不起,如果我的代码真的很糟糕。这就是我到目前为止所拥有的:

import pandas as pd
import numpy as np


file_directory = input("Please enter file location (directory):  ")
file_name = input("Please enter file name:  ")
file_location = (file_directory + "\\" + file_name)
user_action = input("What you would like to do: " "Example Actions: Add 
Driver, Remove Driver, Add Vehicle, Remove Vehicle")
print (file_location)

def remove_driver(driver):
    file = pd.ExcelFile(file_location)
    sheet_1 = pd.read_excel(file, sheet_name = 0)
    print(sheet_1)
    for driver in sheet_1:
        if driver in sheet_1 == True:
            print ("Found Driver")
            sheet_1.replace(driver_name, "None")
        else:
            print ("Driver not found")

if user_action == "Remove Driver" or "remove driver":
    driver_name = input("enter driver's name: ")
    remove_driver(driver_name)

我在代码中放置了打印件,以查看我的代码在做什么。你可以忽略那些。任何帮助将不胜感激。

【问题讨论】:

    标签: python excel search multiple-columns python-3.6


    【解决方案1】:

    我不确定你的意思:

    for driver in sheet_1:
        if driver in sheet_1 == True:
    

    您在循环中使用与函数中相同的变量。

    sheet_1 也是一个 panda DataFrame。 for 循环对行进行迭代。

    driver_name 尚未定义(定义太晚)。

    当你调用replace时,它会返回一个新的dataframe,你可能需要添加inplace参数来直接修改dataframe(否则它会返回一个副本)。但无论如何它不会修改excel文件。

    【讨论】:

    • 感谢 Dric 提供的信息!在让您感到困惑的代码中,我试图让它搜索用户在 sheet1 中输入的驱动程序名称并找到匹配项。至于 driver_name 变量,我会先定义一下。
    猜你喜欢
    • 1970-01-01
    • 2016-09-20
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多