基于CSV文件的财务分析计算技术咨询(已导入pandas、numpy)
基于Pandas完成指定财务分析指标计算
假设你的CSV数据包含两列:Date(日期格式如Feb-2012)和Profit/Losses(月度利润数值),以下是直接可用的代码实现,对应你需要的所有指标:
import pandas as pd # 读取CSV文件(替换为你的文件路径) df = pd.read_csv('your_file.csv') # 1. 计算总月份数 total_months = df.shape[0] # 2. 计算总利润 total_profit = df['Profit/Losses'].sum() # 3. 计算月度利润变化及平均变化 profit_changes = df['Profit/Losses'].diff() average_change = profit_changes.mean() # 4. 找出利润最大增长及对应日期 max_increase_value = profit_changes.max() max_increase_date = df['Date'].iloc[profit_changes.idxmax()] # 5. 找出利润最大减少及对应日期 max_decrease_value = profit_changes.min() max_decrease_date = df['Date'].iloc[profit_changes.idxmin()] # 格式化输出结果 print("Financial Analysis") print("----------------------------") print(f"Total Months: {total_months}") print(f"Total: ${total_profit:,}") print(f"Average Change: ${average_change:.2f}") print(f"Greatest Increase in Profits: {max_increase_date} (${max_increase_value:,})") print(f"Greatest Decrease in Profits: {max_decrease_date} (${max_decrease_value:,})")
关键逻辑说明:
- 总月份数:直接取DataFrame的行数,对应CSV中月度数据的条数
- 总利润:对利润列直接求和,保留原始数值格式
- 平均变化:用
diff()方法计算相邻月份的利润差值,再求平均值(自动忽略第一个无差值的月份) - 最大/最小变化:通过
max()/min()找到极值,再用idxmax()/idxmin()获取对应索引,匹配到日期列的对应值
如果你的CSV列名和假设不一致,只需要替换代码中Date和Profit/Losses为实际列名即可。
内容的提问来源于stack exchange,提问作者Treveon Williams
相关产品推荐
相关产品推荐

