将变量包含到pd.read_excel skiprows选项中

时间:2017-11-25 02:51:34

标签: python-3.x pandas

这完美无缺。

for fname in glob.iglob(path):

    df2 = pd.read_excel(fname, skiprows=5, header=0).dropna(subset=['TreeNodeCode'],how='any')

但是,每个excel表都有不同的行数要跳过,所以我试图让一个变量循环跳过:

我试过了:

   skip_row_number=list('5')

   df2 = pd.read_excel(fname, skiprows=skip_row_number, header=0).dropna(subset=['Code'],how='any')

skip_row_number="5"

df2 = pd.read_excel(fname, skiprows=skip_row_number, header=0).dropna(subset=['Code'],how='any')

两者都返回:

第3489行,在dropna中     提出KeyError(list(np.compress(check,subset))) KeyError:[' Code']

但是,用户手册说

skiprows : list-like
Rows to skip at the beginning (0-indexed)

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html

所以我很困惑。任何一位大师能开导吗?

我们在python 3.6和pandas 0.21.0

1 个答案:

答案 0 :(得分:0)

感谢所有答案!评论中的答案似乎不起作用,但我使用了一种有点丑陋的方式:

               if CLIENT_ID in ('6'):

                df2 = pd.read_excel(fname, skiprows=5, header=0).dropna(subset=['TreeNodeCode'],how='any')

              elif CLIENT_ID in ('7','23'):

                df2 = pd.read_excel(fname, skiprows=4, header=0).dropna(subset=['TreeNodeCode'],how='any')