我有一个示例数据集,其中包含不同年份的 ID 和成本,如下所示:
我如何在 Python 中创建一个函数来查找属于各自 id 的每年的中位数成本?我希望函数在开始和结束年份方面是动态的,这样如果新数据来自不同年份,代码将相应地计算变化。例如,如果有 2019 年的新数据,则结束日期将自动视为 2019 年而不是 2018 年,并分别计算其中位数。
使用上面给出的当前数据样本,结果应该如下所示:
最佳答案
首先我们在 -
上拆分列名,只得到年份。然后我们根据这些年份对 axis=1
进行分组并取中位数:
df = df.set_index("Id")
df = df.groupby(df.columns.str.split("-").str[0], axis=1).median().reset_index()
# or get first 4 characters
# df = df.groupby(df.columns.str[:4], axis=1).median().reset_index()
Id 2015 2016 2017 2018
0 10 58400 57750 58150 59250
1 11 105150 107450 108750 109150
2 12 107100 105900 107100 108750
3 13 49250 47850 47700 47850
4 14 50100 51200 52150 51450
关于python - 创建一个函数来计算不同年份的中位数成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66520019/