循环浏览多个Excel文件,使用panda修改和重写原始文件



我是新手,所以请耐心等待。。。。我有一个.xls文件,有49行5列,即a、b、c、d、e。我想计算(b^2+c^2+d^2(的平方根,并将其作为f放入同一.xls文件中的新列中。现在想象一下,我有49个这样的文件。我正在尝试使用panda编写一段代码,它可以自动解析文件夹中的每个文件,并使用上面的公式在原始文件中添加一列。

我的代码是:

import glob
import pandas as pd
import numpy as np
#size = len(glob.glob('test/*.xls'))
file = glob.glob('test/*.xls')
for f in file:
print(f)
name = 12
df = pd.read_excel(f, header = None)
df.columns = ['a','b', 'c', 'd', 'e','f']
df['Result'] = ((df['b']**2)+(df['c']**2)+(df['d']**2))**(1/2)
df.to_excel(r'test/Nodal pressure at 8 us_at_Y_'+str(name)+'.5.xls', index = False)
name = name + 1

我不知道这是否可能,但任何帮助都会有用。此外,我是编码的新手,所以我可能不是一些基本的。

请尝试以下操作:在读取数据时创建一个新列Filename,在写入excel时按文件名分组,并在写入前删除该列

import glob
import pandas as pd
file = glob.glob('test/*.xls')
df = pd.concat([pd.read_excel(f, header=None).assign(Filename=os.path.basename(f)) for f in file])
df.columns = ['a','b', 'c', 'd', 'e','f','Filename']
df['Result'] = ((df['b']**2)+(df['c']**2)+(df['d']**2))**(1/2)
name = 12
for x in df.groupby(['Filename']):
x.drop('Filename', axis=1).to_excel(r'test/Nodal pressure at 8 us_at_Y_'+str(name)+'.5.xls', index=False)
name += 1      

最新更新