python - 循环遍历多个 Excel 文件以使用 pandas 修改和重写原始文件

标签 python excel pandas anaconda

我是新手,所以请多多包涵……
我有一个 .xls 文件,它有 49 行和 5 列,即。 a,b,c,d,e。我想计算 (b^2+c^2+d^2) 的平方根并作为 f 放入新列。在同一个 .xls 文件中。
现在想象我有 49 个这样的文件。
我正在尝试使用 pandas 编写代码,该代码会自动解析文件夹中的每个文件,并使用上述公式在原始文件中添加一列。
我的代码是:

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      

关于python - 循环遍历多个 Excel 文件以使用 pandas 修改和重写原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62932278/

相关文章:

python - 如果我们已经在 python 中导入了 tensorflow,为什么还要从 tensorflow 中导入 keras?

python - 如何在 django 中从组创建自定义组

python - 将包含 utf-8 文本和 URL 的文本列导出 Pandas 数据框到 Excel

python - 用excel/sql/pandas中同一列中出现的频率替换列中的值

python - Pandas - 按多索引级别分组,获取可能的组合,然后转换数据

python - pytest异常无类型对象不可调用

python - 什么是 python 中的 Response 对象?

vba - 满足条件时运行 VBA 宏

python - 解决AttributeError : module 'pandas' has no attribute 'core' using command-prompt or pycharm

pandas - 如何在使用 selenium 和 requests 的数千个下载程序中包含 try 和 Exceptions 测试?