DataFrame(12):数据转换——apply(),applymap()函数的使用

举报
yd_226342373 发表于 2021/05/20 23:34:47 2021/05/20
1.2k+ 0 0
【摘要】 1、apply()函数 1)apply()函数作用 ① apply()函数作用于Series   和Series的map()方法作用是一样的,依次取出Series中的每一个元素作为参数,传递给function函数,进行一次转换。 ② apply()函数作用于DataFrame   依次取出DataFrame中的每一个元素作为参数,传递给function函数,进...

1、apply()函数

1)apply()函数作用
① apply()函数作用于Series

  和Series的map()方法作用是一样的,依次取出Series中的每一个元素作为参数,传递给function函数,进行一次转换。

② apply()函数作用于DataFrame

  依次取出DataFrame中的每一个元素作为参数,传递给function函数,进行转换。注意:DataFrame中的每一个元素是一个Series。

③ 原始数据链接如下

http://note.youdao.com/noteshare?id=3943f6b14c322e683fb2fe3bfdd11f63&sub=06345554A2234845B796B525E76697ED
  

2)apply()函数作用于Series
① 案例一:1代表男,0代表女,完成如下替换
df = pd.read_excel(r"C:\Users\黄伟\Desktop\test.xlsx",sheet_name=3)
display(df)

def func(x): if x == "男" or x == "女": return x elif x == 1: return "男" else: return "女"

df["性别"] = df["性别"].apply(func)
display(df)

  
 

结果如下:
在这里插入图片描述

② 案例二:将身高统一替换为“cm”单位
df = pd.read_excel(r"C:\Users\黄伟\Desktop\test.xlsx",sheet_name=3)
display(df)

def func(x): if x.endswith("cm"): return x else: v = float(x.replace("m","")) return str(v*100)+"cm"

df["身高"] = df["身高"].apply(func)
display(df)

  
 

结果如下:
在这里插入图片描述

③ 案例三:提取日期中的年、月、日
df = pd.read_excel(r"C:\Users\黄伟\Desktop\test1.xlsx")
display(df)

# 注意:这里的日期列,是时间格式
df["year"] = df["日期"].apply(lambda x:x.year)
df["month"] = df["日期"].apply(lambda x:x.month)
df["day"] = df["日期"].apply(lambda x:x.day)
display(df)

  
 

结果如下:
在这里插入图片描述

3)apply函数作用于DataFrame
① 案例一:求出某些列的均值
df = pd.read_excel(r"C:\Users\黄伟\Desktop\test.xlsx",sheet_name=2)
display(df)

df1 = df[["语文","物理"]]
display(df1)
display(type(df1))

df[["语文","物理"]].apply(lambda x:x.mean())

  
 

结果如下:
在这里插入图片描述

② 打印df中列或行的数据类型
df = pd.read_excel(r"C:\Users\黄伟\Desktop\test.xlsx",sheet_name=2)
display(df)

x = df.apply(lambda x:print(type(x)),axis=0)
print("-------------------------------------")
y = df.apply(lambda x:print(type(x)),axis=1)

  
 

结果如下:
在这里插入图片描述

2、applymap()函数

1)applymap()函数作用
① applymap()函数只能作用于DataFrame

  依次取出DataFrame中的每一个具体的元素作为参数,传递给function函数,进行转换。

2)案例说明
df = pd.read_excel(r"C:\Users\黄伟\Desktop\test.xlsx",sheet_name=2)
display(df)

df[['语文', '数学', '英语', '物理', '化学', '生物']].applymap(lambda x:x+100)

  
 

结果如下:
在这里插入图片描述

文章来源: blog.csdn.net,作者:数据分析与统计学之美,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41261833/article/details/104217226

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。