鱼C论坛

 找回密码
 立即注册
查看: 1722|回复: 3

[已解决]python 求Excel出来数据多重条件如何用代码表示

[复制链接]
发表于 2023-5-22 17:55:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
序号        金额           比例        合计金额
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
最佳答案
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[df['比例'] < 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-22 18:01:44 | 显示全部楼层
import pandas as pd

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

# 将结果保存为 Excel 文件
df.to_excel('output.xlsx', index=False)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[df['比例'] < 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-22 19:17:35 | 显示全部楼层
以下是代码实现,可供参考:
import pandas as pd

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

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

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

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

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

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

记得先下载pandas库
pip install pandas

有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 03:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表