Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将函数应用于Pandas中的整个数据帧_Python_Pandas - Fatal编程技术网

Python 将函数应用于Pandas中的整个数据帧

Python 将函数应用于Pandas中的整个数据帧,python,pandas,Python,Pandas,可能是一个很小的问题,但是如何将函数应用到带有熊猫的整个“矩阵”中呢?在我看来,apply既可以行操作,也可以列操作,但如果我想同时执行这两种操作呢?例如 >>> 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

可能是一个很小的问题,但是如何将函数应用到带有熊猫的整个“矩阵”中呢?在我看来,apply既可以行操作,也可以列操作,但如果我想同时执行这两种操作呢?例如

>>> 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
使用一些预定义的max函数。非常感谢

编辑: 抱歉,我本来应该在我最初的问题中说得更清楚。实际上,我对计算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

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

但是,如果所有列都具有相同的类型,则可以将数据帧转换为矩阵,如

m = df.as_matrix() 
然后使用
m
,例如

m.max()

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

但是,如果所有列都具有相同的类型,则可以将数据帧转换为矩阵,如

m = df.as_matrix() 
然后使用
m
,例如

m.max()

df.max()
如果要在行和列中查找最大值,可以执行以下操作:
df.max()
如果要在表中查找最大值,最好的方法是:
df.values.max()
.applymap对每个元素都有效,但应该只使用数据帧内置的max方法。
df.max().max()
对于这种情况,您可以使用NumPy:
np.amax(df.values)
实际上首先您可以编写
df=pd.DataFrame({“A”:[10,20,30],“B”:[20,30,10]},dtype=np.float)
然后应用一些函数(例如exp),如下所示:
exp\u df=np.exp(df)
如果要在行和列中查找最大值,可以执行以下操作:
df.max()
如果要在表中查找最大值,最好的方法是:
df.values.max()
.applymap适用于每个元素,但是你应该只使用数据帧内置的max方法。这看起来不像python。哦,对不起,这是R。。。我在pythondaframes中更改了
.max
方法。就用那个吧。那个看起来不像python。哦,对不起,是R。。。我在pythondaframes中更改了
.max
方法。就用这个吧。