任何人都可以告诉我如何在Python中使用Pandas或任何其他模块读取没有隐藏列的Excel文件?
当我尝试使用Pandas读取excel文件时,例如:
file_np = pd.read_excel(f_name)
dataframe file_np始终包含所有列.从这个数据框中,我不知道如何识别哪个列隐藏在Excel文件中.
谢谢!
最佳答案
我不认为熊猫是开箱即用的.
输入
不幸的是,你必须做一些冗余阅读(两次). openpyxl做你想要的 –
import openpyxl
import pandas as pd
loc = 'sample.xlsx'
wb = openpyxl.load_workbook(loc)
ws = wb.get_sheet_by_name('Sheet1')
hidden_cols = []
for colLetter,colDimension in ws.column_dimensions.items():
if colDimension.hidden == True:
hidden_cols.append(colLetter)
df = pd.read_excel(loc)
unhidden = list( set(df.columns) - set(hidden_cols) )
df = df[unhidden]
print(df)
产量
C A
0 1 7
1 9 7
2 5 10
3 7 7
4 4 8
5 4 6
6 9 9
7 10 3
8 1 2
说明
首先使用openpyxl读取文件 –
loc = 'C:/Users/FGB3140/Desktop/sample.xlsx'
wb = openpyxl.load_workbook(loc)
ws = wb.get_sheet_by_name('Sheet1')
hidden_cols = []
for colLetter,colDimension in ws.column_dimensions.items():
if colDimension.hidden == True:
hidden_cols.append(colLetter)
使用pandas读取相同的文件 – df = pd.read_excel(loc)
通过从其余部分中减去隐藏的列来查找未隐藏的列 –
unhidden = list( set(df.columns) - set(hidden_cols) )
最后,过滤掉隐藏的列 –
df = df[unhidden]
P.S
我知道我可以做colDimension.hidden ==如果没有colDimension.hidden则为False或simple – 这里的目标是捕获隐藏的列,然后相应地进行过滤.希望这可以帮助!