pandas的apply中的x到底是什么
程序员文章站
2022-03-27 13:07:08
使用pandas时经常会用到map,apply函数,一般是配合自己定义的匿名函数(lambda)或者函数使用,比较灵活方便。但是一般也没有深究函数中的那个x到底是什么,是一个数字或者字符,一行还是一列?现在我们来仔细看看到底是啥,明白了这个对我们使用apply的时候自定义函数十分有益首先自定义一个简单的Dataframeimport pandas as pddata=pd.DataFrame({"id":[1,3,5,7],"score":[61,63,65,67]})情况1: 对某一列....
使用pandas时经常会用到map,apply函数,一般是配合自己定义的匿名函数(lambda)或者函数使用,比较灵活方便。但是一般也没有深究函数中的那个x到底是什么,是一个数字或者字符,一行还是一列?
现在我们来仔细看看到底是啥,明白了这个对我们使用apply的时候自定义函数十分有益
首先自定义一个简单的Dataframe
import pandas as pd
data=pd.DataFrame({"id":[1,3,5,7],"score":[61,63,65,67]})
- 情况1: 对某一列操作
那现在我们对score这一列进行apply操作,看看每一个x是啥,是啥类型
data['score'].apply(lambda x:print(x))
data['score'].apply(lambda x:print(type(x)))
显而易见,当对某一列数据操作apply时,每一个x就是该列的每一个数字或者字符串
上面也可以写为:
def my_print(s):
print(s)
print(type(s))
data['score'].apply(my_print)
- 情况2:对多列操作,axis=0
axis=0是对dataframe使用apply的默认设置,表示对数据按列为单位操作
data.apply(lambda x:print(x),axis=0)
data.apply(lambda x:print(type(x)),axis=0)
可以看到此时,每一个x代表数据中的每一列,每一列是一个Series,Series的索引是原来的行索引:0,1,2,3
- 情况3:对多列操作,axis=1
axis=1表示对数据按行为单位操作
data.apply(lambda x:print(x),axis=1)
data.apply(lambda x:print(type(x)),axis=1)
可以看到此时,每一个x代表数据中的每一行,每一行是一个Series,Series的索引是原来的列名:id,score
明白了这些,以后再使用自定义函数处理数据,就不会对传进函数的参数到底是啥而犯迷糊了
本文地址:https://blog.csdn.net/qq_38412868/article/details/107428060
上一篇: Redis3/5---主从复制
下一篇: 【Python入门学习笔记】函数