如何获取 pandas 数据框中列表的平均值
How to get average of a list in pandas dataframe
这是我的数据框。我希望分别计算每个开关的电流、电压和功率的平均值。
switch12 switch11 switch10
Current [0.1, 0.12, 0.15] [0.15, 0.11, 0.13] [0.18, 0.17, 0.15]
Voltage [120, 118] [120, 116] [120, 117]
Power [12, 25] [18, 19] [21.6, 22.4]
希望输出是这样的:
switch12 switch11 switch10
Current 0.123 0.130 0.167
Voltage 119 118 118.5
Power 18.5 18.5 22.0
如果有另一种方法不使用 pandas 来帮助解决这个问题,我也很乐意听到这个消息
尝试applymap
df = df.applymap(np.mean)
# or
df = df.applymap(lambda l: sum(l) / len(l))
print(df)
switch12 switch11 switch13
0 0.123333 0.13 0.166667
1 119.000000 118.00 118.500000
2 18.500000 18.50 22.000000
另一种方法:
out = df.explode([*df.columns]).groupby(level=0).mean()
print(out)
打印:
switch12 switch11 switch10
Current 0.123333 0.13 0.166667
Power 18.500000 18.50 22.000000
Voltage 119.000000 118.00 118.500000
这是我的数据框。我希望分别计算每个开关的电流、电压和功率的平均值。
switch12 switch11 switch10
Current [0.1, 0.12, 0.15] [0.15, 0.11, 0.13] [0.18, 0.17, 0.15]
Voltage [120, 118] [120, 116] [120, 117]
Power [12, 25] [18, 19] [21.6, 22.4]
希望输出是这样的:
switch12 switch11 switch10
Current 0.123 0.130 0.167
Voltage 119 118 118.5
Power 18.5 18.5 22.0
如果有另一种方法不使用 pandas 来帮助解决这个问题,我也很乐意听到这个消息
尝试applymap
df = df.applymap(np.mean)
# or
df = df.applymap(lambda l: sum(l) / len(l))
print(df)
switch12 switch11 switch13
0 0.123333 0.13 0.166667
1 119.000000 118.00 118.500000
2 18.500000 18.50 22.000000
另一种方法:
out = df.explode([*df.columns]).groupby(level=0).mean()
print(out)
打印:
switch12 switch11 switch10
Current 0.123333 0.13 0.166667
Power 18.500000 18.50 22.000000
Voltage 119.000000 118.00 118.500000