Pandas函数应用程序 Pandas描述性统计 Pandas 重建索引 要将自己的或另一个库的函数应用于Pandas对象,您应该了解三种重要的方法。这些方法已在下面讨论。使用适当的方法取决于您的函数是否期望在整个DataFrame上进行操作,按行还是按列还是按元素进行操作。 智能表功能应用:pipe() 行或列智能函数应用:apply() 元素明智的功能应用程序:applymap() 表格式函数应用程序 自定义操作可以通过传递函数和相应数量的参数作为管道参数来执行。因此,在整个DataFrame上执行操作。 例如,为DataFrame中的所有元素添加值2。然后, 加法器功能 加法器函数添加两个数值作为参数并返回总和。 def adder(ele1,ele2): return ele1+ele2 我们现在将使用自定义函数在DataFrame上进行操作。 df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) df.pipe(adder,2) 让我们看看完整的程序 - import pandas as pd import numpy as np def adder(ele1,ele2): return ele1+ele2 df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) df.pipe(adder,2) print df.apply(np.mean) 其 输出 如下 - col1 col2 col3 0 2.176704 2.219691 1.509360 1 2.222378 2.422167 3.953921 2 2.241096 1.135424 2.696432 3 2.355763 0.376672 1.182570 4 2.308743 2.714767 2.130288 行或列智能函数应用程序 可以使用 apply() 方法沿着DataFrame或Panel的坐标轴应用任意函数,该方法与描述性统计方法一样,采用可选的轴参数。默认情况下,该操作执行列明智,每列作为一个数组。 例1 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) df.apply(np.mean) print df.apply(np.mean) 其 输出 如下 - col1 col2 col3 0 0.343569 -1.013287 1.131245 1 0.508922 -0.949778 -1.600569 2 -1.182331 -0.420703 -1.725400 3 0.860265 2.069038 -0.537648 4 0.876758 -0.238051 0.473992 通过传递 轴 参数,可以逐行执行操作。 例2 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) df.apply(np.mean,axis=1) print df.apply(np.mean) 其 输出 如下 - col1 col2 col3 0 0.543255 -1.613418 -0.500731 1 0.976543 -1.135835 -0.719153 2 0.184282 -0.721153 -2.876206 3 0.447738 0.268062 -1.937888 4 -0.677673 0.177455 1.397360 例3 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) df.apply(lambda x: x.max() - x.min()) print df.apply(np.mean) 其 输出 如下 - col1 col2 col3 0 -0.585206 -0.104938 1.424115 1 -0.326036 -1.444798 0.196849 2 -2.033478 1.682253 1.223152 3 -0.107015 0.499846 0.084127 4 -1.046964 -1.935617 -0.009919 元素智能函数应用程序 并非所有的功能可以被矢量(均未返回另一个阵列或任何值NumPy的阵列),该方法 applymap() 上数据帧和 类似映射() 上序列接受任何Python函数取一个值,并返回一个值。 例1 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) # My custom function df['col1'].map(lambda x:x*100) print df.apply(np.mean) 其 输出 如下 - col1 col2 col3 0 0.629348 0.088467 -1.790702 1 -0.592595 0.184113 -1.524998 2 -0.419298 0.262369 -0.178849 3 -1.036930 1.103169 0.941882 4 -0.573333 -0.031056 0.315590 例2 import pandas as pd import numpy as np # My custom function df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3']) df.applymap(lambda x:x*100) print df.apply(np.mean) 其 输出 如下 - output is as follows: col1 col2 col3 0 17.670426 21.969052 -49.064031 1 22.237846 42.216693 195.392124 2 24.109576 -86.457646 69.643171 3 35.576312 -162.332803 -81.743023 4 30.874333 71.476717 13.028751 Pandas描述性统计 Pandas 重建索引