我试图使用pandas.read_excel
读取Excel文件的每k列。从文档来看,带有可调用对象的usecols
选项似乎很有用:
如果可调用,则根据它计算每个列名并解析如果可调用对象返回True,
是否有一种方法可以让可调用对象接受列号而不是列名?比如:
pd.read_excel('file.xls', usecols=lambda col_number: not col_number % k)
这是我所知道的最好的方法-阅读第一行,找出列的数量,然后创建一个数组,每个第k列整数索引。(可调用对象只接收列名)
import numpy as np
dfe = pd.read_excel(r'D:jchfilesexceljchhouseRats.xlsx', nrows=1)
k = 3
print(dfe.shape)
(1, 9)
nb_sel_cols = dfe.shape[1]//k
print(nb_sel_cols)
3
sel_cols = np.arange(nb_sel_cols)*k
print(sel_cols)
[0 3 6]
df_rats = pd.read_excel(r'D:jchfilesexceljchhouseRats.xlsx', usecols=sel_cols)
df_rats.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 16 entries, 0 to 15
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Unnamed: 0 3 non-null datetime64[ns]
1 Inside 3 non-null float64
2 Where 3 non-null object
dtypes: datetime64[ns](1), float64(1), object(1)
memory usage: 512.0+ bytes