python进阶-13.pandas-函数应用和映射

文章目录

    • 3.4 函数应用和映射
        • !!!!!obj.appiy(func,axis=0/1)
        • xxx.applymap(func) 把 func 应用到 xxx 每个元素

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

3.4 函数应用和映射

df1 = DataFrame(
    np.random.choice(range(20),size=(4,3),replace=False),
    index=list('ABCD'),
    columns=list('abc'))
df1
	a	b	c
A	14	19	17
B	1	13	18
C	12	9	0
D	5	2	7
  • 使用 numpy 的函数操作
np.sum(df1,axis=0)
a    32
b    43
c    42
dtype: int64
  • 使用numpy的函数操作,axis=0 跨行
np.sum(df1,axis=1)
A    50
B    32
C    21
D    14
dtype: int64
  • 平均
print(df1)
np.mean(df1)
    a   b   c
A  14  19  17
B   1  13  18
C  12   9   0
D   5   2   7
a     8.00
b    10.75
c    10.50
dtype: float64
  • 极差
np.ptp(df1)
19
  • #最大值
np.max(df1)
a    14
b    19
c    18
dtype: int32
np.max(df1)-np.min(df1)
a    13
b    17
c    18
dtype: int32

!!!obj.appiy(func,axis=0/1)

  • 对某个 obj 的行 或 列 应用 一个函数 func
def myptp(x):
    return x.max()-x.min()
print(df1)
df1.apply(myptp)
    a   b   c
A  14  19  17
B   1  13  18
C  12   9   0
D   5   2   7
a    13
b    17
c    18
dtype: int64
  • #直接用匿名函数
df1.apply(lambda x:x.max()-x.min())
a    13
b    17
c    18
dtype: int64
df2=DataFrame(
    np.random.randn(4,3),
    index=list('ABCD'),
    columns=list('一二三'))
df2
		一			二			三
A	1.255686	0.523928	1.677286
B	-3.255231	0.653334	0.314630
C	0.842265	0.794596	-0.457502
D	0.292166	2.348428	0.092936

xxx.applymap(func) 把 func 应用到 xxx 每个元素

df2.apply(lambda x:round(x,3))
	一		二		三
A	1.256	0.524	1.677
B	-3.255	0.653	0.315
C	0.842	0.795	-0.458
D	0.292	2.348	0.093
  • #这样写 返回的 字符串
df2.applymap(lambda x:'%.3f'%x)
	一		二		三
A	1.256	0.524	1.677
B	-3.255	0.653	0.315
C	0.842	0.795	-0.458
D	0.292	2.348	0.093
  • #返回的是float
df2.applymap(lambda x:float('%.3f'%x))
	一		二		三
A	1.256	0.524	1.677
B	-3.255	0.653	0.315
C	0.842	0.795	-0.458
D	0.292	2.348	0.093
df2.applymap(lambda x:'%.3f'%x).applymap(lambda x:float(x))
	一		二		三
A	1.256	0.524	1.677
B	-3.255	0.653	0.315
C	0.842	0.795	-0.458
D	0.292	2.348	0.093
DataFrame(df2.applymap(lambda  x:'%.3f'%x),dtype=float)
	一		二		三
A	1.256	0.524	1.677
B	-3.255	0.653	0.315
C	0.842	0.795	-0.458
D	0.292	2.348	0.093

你可能感兴趣的:(python进阶-13.pandas-函数应用和映射)