我有一个具有多索引的透视表,其中一个级别是“字段”(数据实际上是什么),另一个级别在概念上是实际索引。我想对数据进行一些转换,例如,获取自然日志,并将转换后的值添加为一组行。例如:
col 1 2 3 4 ... 100
field idx
foo A 7 9 2 5 ... 47
B 8 3 4 8 ... 82
C 3 6 1 9 ... 23
bar A 1 17 5 2 ... 32
B 7 5 4 8 ... 78
C 28 6 11 3 ... 11
应成为:
col 1 2 3 4 ... 100
field idx
foo A 7 9 2 5 ... 47
B 8 3 4 8 ... 82
C 3 6 1 9 ... 23
bar A 1 17 5 2 ... 32
B 7 5 4 8 ... 78
C 28 6 11 3 ... 11
lnfoo A <element-wise>
B <natural logs>
C <of foo>
有没有一种简单的方法可以在这样的多索引透视表上执行这种数组范围的操作?尤其是不需要迭代数据帧的行
对熊猫来说很新鲜,如果这是个愚蠢的问题,我很抱歉
另一个解决方案:
您可以很容易地将其扩展到
bar
:要将日志应用于完整的foo索引级别,可以使用
loc
一次选择所有行,并使用np.log
执行示例操作如您所见,level字段不在结果中,您需要使用
pd.concat
和字典以及要创建的级别名称重新创建此级别。然后再次使用pd.concat
将其添加到df的末尾相关问题 更多 >
编程相关推荐