使用 Pandas 读取和传递 Excel 文件名

Soe*_*ham 3 python excel pandas

我想用 Pandas 读取 Excel 文件,删除标题行和第一列,并将结果数据写入同名的 Excel 文件中。我想对文件夹中的所有 Excel 文件执行此操作。我已经编写了数据读取和写入的代码,但无法将数据保存在同名的文件中。我写的代码是这样的——

import numpy as np
import pandas as pd
import os
for filename in os.listdir ('./'):
    if filename.endswith ('.xlsx'):
        df = pd.read_excel ('new.xlsx', skiprows=1)
        df.drop (df.columns [0], axis=1, inplace=True)
        df.to_csv ('new.csv', index=False)    
Run Code Online (Sandbox Code Playgroud)

如何自动化同一文件夹中所有 Excel 文件的代码?

jez*_*ael 5

filename在函数中使用变量read_excel,然后通过创建新文件名format并删除第一列,可以使用DataFrame.iloc- 选择没有第一列的所有列:

for filename in os.listdir ('./'):
    if filename.endswith ('.xlsx'):
        df = pd.read_excel (filename, skiprows=1)
        df.iloc[:, 1:].to_csv('new_{}.csv'.format(filename), index=False) 
Run Code Online (Sandbox Code Playgroud)

另一个解决方案glob,有可能指定扩展名:

import glob

for filename in glob.glob('./*.xlsx'):
    df = pd.read_excel (filename, skiprows=1)
    df.iloc[:, 1:].to_csv('new_{}.csv'.format(filename), index=False)   
    #python 3.6+    
    #df.iloc[:, 1:].to_csv (f'new_{filename}.csv', index=False)   
Run Code Online (Sandbox Code Playgroud)