首页 > 解决方案 > 用于搜索和显示列标题的 Python 代码

问题描述

我正在寻找可以从 excel 中读取今天日期并随后在同一行中找到日期和值(11 或 12)的代码。例如,当我在星期一(2020 年 3 月 16 日)找到“12”时,我希望它显示 XYZ 和 RST(列名)。

有没有可能这样做。请帮帮我。

附上Excel图片

标签: pythonpandasdataframe

解决方案


你可以使用 pandas 数据框来做到这一点,这可能会得到你想要的

import pandas as pd
from datetime import date
df = pd.read_excel('file_name.xlsx', parse_dates=True)
df['Date ']= pd.to_datetime(df['Date ']) 

>>df

Date    Day ABC XYZ PQR RST
0   2020-03-17  Tuesday 11  11  12  12
1   2020-03-12  Saturday    12  11  11  12
2   2020-03-18  Wednesday   12  12  11  11

today= date.today().strftime("%Y-%m-%d")
df_slice = df[df["Date "]==today]

>>df_slice
Date    Day ABC XYZ PQR RST
0   2020-03-17  Tuesday 11  11  12  12



my_cols = list(df_slice.columns)

del my_cols[0:2] # delete columns name not be searched

for col in my_cols:
    df_slice[col] = df_slice[col].apply(str) # apply str to check match case
    if df_slice[col].str.contains("11").any() == True:
        print(col)
>>PQR
>>RST

推荐阅读