gpt4 book ai didi

python - 向 pandas 数据框添加方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:00 25 4
gpt4 key购买 nike

我想将 pandas 数据框中的值的平均值添加到数据框中,以便我可以将它们写入单个 Excel 文件中。

我有以下数据框:

df = pd.DataFrame({'a': {('0hr', '0.01um', 0): 12,
('0hr', '0.01um', 1): 10,
('0hr', '0.1um', 0): 8,
('0hr', '0.1um', 1): 6,
('0hr', 'Control', 0): 4,
('0hr', 'Control', 1): 2,
('24hr', '0.01um', 0): 18,
('24hr', '0.01um', 1): 15,
('24hr', '0.1um', 0): 12,
('24hr', '0.1um', 1): 9,
('24hr', 'Control', 0): 6,
('24hr', 'Control', 1): 3},
'b': {('0hr', '0.01um', 0): 42,
('0hr', '0.01um', 1): 35,
('0hr', '0.1um', 0): 28,
('0hr', '0.1um', 1): 21,
('0hr', 'Control', 0): 14,
('0hr', 'Control', 1): 7,
('24hr', '0.01um', 0): 30,
('24hr', '0.01um', 1): 25,
('24hr', '0.1um', 0): 20,
('24hr', '0.1um', 1): 15,
('24hr', 'Control', 0): 10,
('24hr', 'Control', 1): 5}})

我可以通过执行以下操作来计算每个更高级别索引的 0 和 1 的平均值:

df = df.reorder_levels([2,1,0]).unstack().unstack()
dfMean = df.mean()

print(df)

a b
0hr 24hr 0hr 24hr
0.01um 0.1um Control 0.01um 0.1um Control 0.01um 0.1um Control 0.01um 0.1um Control
0 12 8 4 18 12 6 42 28 14 30 20 10
1 10 6 2 15 9 3 35 21 7 25 15 5

print(dfMean)

a 0hr 0.01um 11.0
0.1um 7.0
Control 3.0
24hr 0.01um 16.5
0.1um 10.5
Control 4.5
b 0hr 0.01um 38.5
0.1um 24.5
Control 10.5
24hr 0.01um 27.5
0.1um 17.5
Control 7.5

我想将 dfMean 放入 df DataFrame 中,这样我就可以将所有日期写入单个 Excel 工作表中......实现此目的的最佳方法是什么?也许 DataFrame 看起来像这样?

       a                                         b                             
0hr 24hr 0hr 24hr
0.01um 0.1um Control 0.01um 0.1um Control 0.01um 0.1um Control 0.01um 0.1um Control
0 12 8 4 18 12 6 42 28 14 30 20 10
1 10 6 2 15 9 3 35 21 7 25 15 5
mean 11.0 7.0 3.0 16.5 10.5 4.5 38.5 24.5 10.5 27.5 17.5 7.5

这可能吗?

最佳答案

只需将平均值添加为一列即可:

df2 = df.stack().unstack(-2)
df2["mean"] = df2.mean(axis=1)

然后您可以重新排序级别并转置数据帧。

关于python - 向 pandas 数据框添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29507846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com