将函数应用于Pandas中的整个DataFrame

时间:2016-11-18 22:45:55

标签: python pandas

可能是一个微不足道的问题,但是如何将一个函数应用于Pandas的整个“矩阵”?在我看来,应用可以按行或逐列进行,但如果我想同时进行两种操作呢? E.g。

>>> df = pd.DataFrame({"A": [10,20,30], "B": [20, 30, 10]})
>>> df
    A   B  
0  10  20         
1  20  40         
2  30  10  
>>> df.apply(max)
40

使用一些预定义的最大功能。非常感谢提前

编辑: 道歉,我原本的问题应该更清楚了。我实际上并不想计算DataFrame max,而只是作为一个例子。也许是一个更好的例子,是一个函数,它在两列上取最后两行的最大值,即

>>> df = pd.DataFrame({"A": [10,20,30], "B": [20, 30, 10]})
>>> df
    A   B  
0  10  20         
1  20  40         
2  30  10 
3  50  20 
>>> df.apply(max)
0  n/a
1  40
2  40
3  50

1 个答案:

答案 0 :(得分:0)

这通常不是DataFrame的使用方式,因为列可能有不同的类型。

但是,如果所有列都具有相同的类型,则将DataFrame转换为矩阵可能是明智的,例如

m = df.as_matrix() 

然后使用m,例如

m.max()