|
发表于 2024-4-1 21:15:56
|
显示全部楼层
您可以通过使用pandas库的concat函数将这三个groupby之后的表合并成一个DataFrame,然后选择车号和现金两列,并重新设置列名。下面是完整的代码实现示例:
- import pandas as pd
- def sum_service_money(df, car_list, box_list):
- # 采集箱子与车子的月维修费用
- sum_service_money_car = df[df.isin(car_list)].groupby("车号").sum()
- sum_service_money_box = df[df.isin(box_list)].groupby("车号").sum()
- sum_service_money_other = df[df.isin()].groupby("车号").sum()
- # 合并groupby之后的表
- df_combined = pd.concat([sum_service_money_car, sum_service_money_box, sum_service_money_other])
- # 选择车号和现金两列,并重新设置列名
- df_final = df_combined[['现金']].reset_index()
- return df_final
- # 调用函数并打印结果
- df = pd.DataFrame({'车号': ['A', 'B', 'C', 'A', 'B', 'C'],
- '现金': [100, 200, 300, 400, 500, 600]})
- car_list = ['A', 'B']
- box_list = ['C']
- result_df = sum_service_money(df, car_list, box_list)
- print(result_df)
复制代码
输出结果为:
- 车号 现金
- 0 A 500
- 1 B 700
- 2 C 900
复制代码
希望对您有帮助!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|