python apply函数_python玄学之 apply函数的axis参数
不知道小伙伴们学习python的dataframe时,是否遇到一个疑惑,apply参数axis的具体含义是什么?
官方文档解释如下:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html
axis{0 or ‘index’, 1 or ‘columns’}, default 0
Axis along which the function is applied:
0 or ‘index’: apply function to each column.
1 or ‘columns’: apply function to each row.
也就是说,0代表按列,1代表按行
例如我的数据
import pandas as pd
tf = pd.read_csv(filepath)
sharein 0_country 1_country 2_country
0 1 USA USA NaN
1 2 France France Czech Republic
2 1 Australia Australia NaN
3 2 USA France France
4 2 USA France France
5 1 China China NaN
6 1 China China NaN
7 1 China China NaN
8 1 China China NaN
9 1 China China NaN
10 1 USA USA NaN
11 1 USA USA NaN
12 2 USA China USA
13 1 China China NaN
14 1 China China NaN
15 1 China China NaN
16 1 China China NaN
tf = tf.fillna("0")
首先我构建一个函数来计算
def count(n):
n1 = n.unique()#unique函数仅针对序列,df[]表示序列,df[[]]表示dataframe
n2 = len(list(n1))
if "0" in n1 :
n2-=1
return n2
显然,我的函数的目的在于按行对于tf进行操作,那我们设置axis = 1,来我们看一下结果
tf.apply(count,axis = 1)
0 1
1 2
2 1
3 2
4 2
5 1
6 1
7 1
8 1
9 1
10 1
11 1
12 2
13 1
14 1
15 1
16 1
正如我们预期一样,那我们再看另一个例子
tf1 = pd.read_csv(r"pathname")
>>> tf1
type affitype
0 1 2
1 2 3
2 1 1
3 2 3
4 2 3
5 1 1
6 1 1
7 1 2
8 1 1
9 1 1
10 1 1
11 1 1
12 2 2
13 1 2
14 1 2
15 1 2
16 1 2
我想根据以上两列满足一定的条件,然后新增列并且赋值,具体函数如下:
def define_type(i1,i2):
if i1 > 1:
t = "inte"
elif i1 == 1 and i2 == 1:
t = "in_a"
else:
t = "in_n"
return t
显然,此时我们是按列传入函数,应该用axis = 0,我们看看结果
tf1["Type"] = tf1.apply(lambda i:define_type(i["type"],i["affitype"]),axis = 0)
Traceback (most recent call last):
File "", line 1, in
tf1["Type"] = tf1.apply(lambda i:define_type(i["type"],i["affitype"]),axis = 0)
File "E:\py\lib\site-packages\pandas\core\frame.py", line 6487, in apply
return op.get_result()
_____
KeyError: ('type', 'occurred at index type')
结果显示报错,我又百度一番,发现此时设置axis = 1就得到我们想要的结果了
tf1["Type"] = tf1.apply(lambda i:define_type(i["type"],i["affitype"]),axis = 1)
>>> tf1["Type"]
0 in_n
1 inte
2 in_a
3 inte
4 inte
5 in_a
6 in_a
7 in_n
8 in_a
9 in_a
10 in_a
11 in_a
12 inte
13 in_n
14 in_n
15 in_n
16 in_n
Name: Type, dtype: object
我猜大概是和我们输入的参数类型有关吧,第一个是整个dataframe传入函数,后面这个是传入Series,没有进一步细究。
python apply函数_python玄学之 apply函数的axis参数相关推荐
- R语言使用plot函数可视化数据散点图,使用font.axis参数指定坐标轴刻度标签的字体类型为斜体字体(italic)
R语言使用plot函数可视化数据散点图,使用font.axis参数指定坐标轴刻度标签的字体类型为斜体字体(italic) 目录
- python map函数_Python map()函数
python map函数 Python map() function is used to apply a function on all the elements of specified iter ...
- python数字类型转换函数_Python的数据类型转换函数
玩蛇网这篇文章给大家介绍关于,Python数据类型的转换函数. Python提供了一些可以把某个值从一种数据类型,转换成为另一种数据类型的内置函数和方法.int函数可以将任何可以转换为整型的值转换为整 ...
- python hist函数_Python主要数据探索函数
Python中用于数据探索的库主要是pandas(数据分析)和 Matplotlib(数据可视化),其中pandas提供了大量的与数据库探索相关的函数,这些数据探索函数壳大致分为统计特征函数与统计绘图 ...
- python阶乘匿名函数_python的高阶函数与匿名函数
一.高阶函数的定义 高阶函数:就是把函数当成参数传递的一种函数,例如: defadd(x,y,f):return f(x)+f(y)print(add(-8,11,abs) 结果:19 解释: 1.调 ...
- python中itemgetter函数_Python中的sorted函数以及operator.itemgetter函数
operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子. a = [1,2,3] >>> b=op ...
- python日期函数_python 时间及日期函数
本人最近新学python ,用到关于时间和日期的函数,经过一番研究,从网上查找资料,经过测试,总结了一下相关的方法. import time import datetime '''时间转化为时间戳: ...
- python max函数_Python max内置函数详细介绍
Python max内置函数 max(iterable, *[, key, default]) max(arg1, arg2, *args[, key]) Return the largest ite ...
- python拷贝文件函数_Python Set集合,函数,深入拷贝,浅入拷贝,文件处理
1.Set基本数据类型 a.set集合,是一个无序且不重复的元素集合 classset(object):"""set() -> new empty set obje ...
最新文章
- 【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符
- git/ TortoiseGit如何使用证书登录
- Linux下V4L2捕捉画面+H264压缩视频+帧缓冲显示视频————H264压缩视频
- Vue学习笔记入门篇——数据及DOM
- 链表和顺序表的一些区别
- (十一)OpenCV实现图像频率域滤波
- System Center VMM请注意不同语言版本的差异
- 大学生IT创业计划书
- 多个jQuery版本如何共存
- 信息系统项目管理之进度管理过程
- 【2021版】想要专升本你不得不看的全干货_吐血整理_专升本_计算机文化基础(四)
- CSJ加人|cs如何加人|cs加人快捷键
- 从技术角度告诉你,区块链到底有哪些特点和运作机制
- 我的汉字输入法编码方案
- 二、谈谈对数据库中索引的理解
- TOEFL wordlist 14
- 软件工程第二次作业(王伟东)
- 在JS数组特定索引处指定位置插入或修改元素的技巧
- eSIM的基本原理、相关标准、产业和应用
- 十字军东征一些君主AI的对话