pandas基础入门之数据修改

1.向量化函数应用map。

map是作用在Series上,是元素级别的操作 Series.map(arg, na_action=None) ,arg可以是一个函数,对元素做函数变换 ,arg也可以是一个dict、series,对元素做数据映射。

df=pd.Series([1,2,4,7,8],index=('a','m','c','e','f'))
print(df)
out:
a    1
m    2
c    4
e    7
f    8
print(df.map(lambda x:x*x))
out:
a     1
m     4
c    16
e    49
f    64
dtype: int64

dict={1:'A',2:'B',7:'C'}
print(df.map(dict))

out:
a      A
m      B
c    NaN
e      C
f    NaN
dtype: object

2.向量化函数应用 - applymap。

applymap是作用在dataframe上,是元素级别的操作 DataFrame.applymap(func) ,func:参数只能是一个函数,func可以是自己定义的函数。

import pandas as pd


import numpy as np

df=pd.DataFrame(np.arange(9).reshape(3,3),index=list("acb"),columns=['w','m','z',])
print(df)

out:
   w  m  z
a  0  1  2
c  3  4  5
b  6  7  8
print(df.applymap(np.sqrt))
out:
        w         m         z
a  0.000000  1.000000  1.414214
c  1.732051  2.000000  2.236068
b  2.449490  2.645751  2.828427

print(df.apply(sum,axis=1))
out:
a     3
c    12
b    21
dtype: int64

3.向量化函数应用 -apply。

apply是作用在dataframe上,用于对row或者column进行计算 DataFrame.apply(func, axis=0), func为聚合函数时,对行列进行聚合处理 ,func为普通函数时,和applymap效果一样

4.数据的一元运算。

利用map、applymap。

5.数据的二元运算。

两个对象运算中数据对齐问题: 取索引的并集进行数据对其,在没有重叠的位置默认赋值'NA’ Series 和 DataFrame 之间的算术运算涉及广播, 函数举例(类似) DataFrame.add(other, axis='columns', fill_value=None)

import pandas as pd


import numpy as np

df=pd.DataFrame(np.arange(9).reshape(3,3),index=list("acb"),columns=['w','m','z',])
df1=pd.DataFrame(np.arange(9).reshape(3,3),index=list("abf"),columns=['w','k','h',])
print(df)
out:
 w  m  z
a  0  1  2
c  3  4  5
b  6  7  8
print(df1)
out:
  w  k  h
a  0  1  2
b  3  4  5
f  6  7  8
print(df.add(df1))
out:
    h   k   m    w   z
a NaN NaN NaN  0.0 NaN
b NaN NaN NaN  9.0 NaN
c NaN NaN NaN  NaN NaN
f NaN NaN NaN  NaN NaN
#并集后给没有值的一方填入fill_value,如果两方都是NAN则依旧为NAN。
print(df.add(df1,fill_value=0))
out:
    h    k    m    w    z
a  2.0  1.0  1.0  0.0  2.0
b  5.0  4.0  7.0  9.0  8.0
c  NaN  NaN  4.0  3.0  5.0
f  8.0  7.0  NaN  6.0  NaN

 6.汇总运算。

mean(axis=None, skipna=None, level=None) ,axis:行列标记, skipna:是否跳过NaN值 level:对于多层索引有效。

import  pandas as pd

import  numpy as np

df_obj=pd.DataFrame([[1,6.5,3],[4.6,np.nan,2.4],[np.nan,np.nan,3.9],[np.nan
    ,8.5,3.8]],columns=['col1','col2','col3'])
print(df_obj)
out:
   col1  col2  col3
0   1.0   6.5   3.0
1   4.6   NaN   2.4
2   NaN   NaN   3.9
3   NaN   8.5   3.8
print(df_obj.sum(axis=0))
out:
col1     5.6
col2    15.0
col3    13.1
dtype: float64
print(df_obj.sum(axis=0,skipna=False))
out:
col1     NaN
col2     NaN
col3    13.1
dtype: float64
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值