冰菲 发表于 2023-5-22 17:55:28

python 求Excel出来数据多重条件如何用代码表示

序号        金额           比例        合计金额
0        986.04        0.08        78.88
1        2318.51        0.08        185.48
2        2552.89        -0.1        -255.29
3        533.53        -0.1        -53.35
4        901.34        -0.1        -90.13



跪求代码,1:比例为负数时,金额变为负数,比例改为正数。2:另存为Excel时索引序号从1开始计算

效果如下:
序号        金额           比例        合计金额
1        986.04        0.08        78.88
2        2318.51        0.08        185.48
3        -2552.89        0.1        -255.29
4        -533.53        0.1        -53.35
5        -901.34        0.1        -90.13

liuhongrun2022 发表于 2023-5-22 18:01:44

import pandas as pd

# 读取数据并处理
df = pd.read_csv('data.csv', header=None, names=['序号', '金额', '比例', '合计金额'])
df.loc < 0, ['金额', '比例']] = [-df['金额'], -df['比例']]
df['序号'] = df.index + 1

# 将结果保存为 Excel 文件
df.to_excel('output.xlsx', index=False)

isdkz 发表于 2023-5-22 18:25:25

可以使用Python中的pandas库来处理这个问题。下面是一种可能的解决方案:

import pandas as pd
import numpy as np

# 假设你的数据存储在一个名为 'your_data.xlsx' 的Excel文件中
df = pd.read_excel('your_data.xlsx')

# 根据条件修改'金额'和'比例'列
df.loc < 0, ['金额', '比例']] *= -1

# 重新设置索引从1开始
df.index = np.arange(1, len(df) + 1)

# 保存到新的Excel文件
df.to_excel('your_new_data.xlsx', index=True)


在这个脚本中,我们首先从Excel文件中读取数据到一个pandas DataFrame。然后,我们找出'比例'列中小于0的所有行,并将'金额'和'比例'列的值乘以-1。最后,我们将索引更改为从1开始,并将结果保存到新的Excel文件中。

如果原始的Excel文件中包含了表头或者多个sheet,请根据实际情况进行调整。

请注意,这段代码需要pandas和openpyxl库的支持。如果没有安装,你需要使用以下命令进行安装:
pip install pandas openpyxl

sfqxx 发表于 2023-5-22 19:17:35

以下是代码实现,可供参考:

import pandas as pd

# 读取原始数据
df = pd.read_csv('原始数据.csv')

# 处理比例为负数的情况
df.loc < 0, ['金额','比例']] *= -1

# 重新计算合计金额
df['合计金额'] = df['金额'] * df['比例']

# 重新生成序号
df.index += 1

# 将结果保存为Excel文件
df.to_excel('处理结果.xlsx', index_label='序号')

其中,代码第2行读取了原始数据,需要将“原始数据.csv”替换为实际的文件名;代码第9行中“index_label”参数设置了保存的Excel文件中索引列的列名。

记得先下载pandas库{:5_109:}。
pip install pandas

有用请设置最佳答案{:5_92:}
页: [1]
查看完整版本: python 求Excel出来数据多重条件如何用代码表示