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