pandas apply使用多列计算生成新的列实现示例

在python数据分析中,有时需要根据多列数据生成中间结果,pandas给我们带来了很多方便,通常简短的代码可以实现一些高级功能,灵活掌握一些技巧可以事倍功半

pandas的apply方法用于对指定列的每个元素进行相同的操作,下面生成一个dataFrame用于演示:

import pandas as pd
a=range(5)
b=range(5,10)
c=range(10,15)
data=pd.DataFrame([a,b,c]).T
data.columns=["a","b","c"]
print(data)

上面的代码生成的数据如下:

a  b   c
0  0  5  10
1  1  6  11
2  2  7  12
3  3  8  13
4  4  9  14

下面使用使用a,b两列相加生成x1列

data["x1"]=data[["a","b"]].apply(lambda x:x["a"]+x["b"],axis=1)

结果如下:

a  b   c  x1
0  0  5  10   5
1  1  6  11   7
2  2  7  12   9
3  3  8  13  11
4  4  9  14  13

关键的参数是axis=1,指定计算的方向是行而不是列,默认是0,也就是按列进行计算

到此这篇关于pandas apply使用多列计算生成新的列实现示例的文章就介绍到这了,更多相关pandas apply多列计算生成新的列内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pandas使用apply多列生成一列数据的实例

    如下所示: import pandas as pd def my_min(a, b): return min(abs(a),abs(b)) s = pd.Series([10.0247,10.0470, 10.0647,10.0761,15.0800,10.0761,10.0647,10.0470,10.0247,10.0,9.9753,9.9530,9.9353,9.9239,18.92,9.9239,9.9353,9.9530,9.9753,10.0]) df = pd.DataFrame(

  • pandas apply使用多列计算生成新的列实现示例

    在python数据分析中,有时需要根据多列数据生成中间结果,pandas给我们带来了很多方便,通常简短的代码可以实现一些高级功能,灵活掌握一些技巧可以事倍功半 pandas的apply方法用于对指定列的每个元素进行相同的操作,下面生成一个dataFrame用于演示: import pandas as pd a=range(5) b=range(5,10) c=range(10,15) data=pd.DataFrame([a,b,c]).T data.columns=["a",&quo

  • pandas DataFrame 根据多列的值做判断,生成新的列值实例

    环境:Python3.6.4 + pandas 0.22 主要是DataFrame.apply函数的应用,如果设置axis参数为1则每次函数每次会取出DataFrame的一行来做处理,如果axis为1则每次取一列. 如代码所示,判断如果城市名中含有ing字段且年份为2016,则新列test值赋为1,否则为0. import numpy as np import pandas as pd data = {'city': ['Beijing', 'Shanghai', 'Guangzhou', 'S

  • pandas通过loc生成新的列方法

    pandas中一个很便捷的使用方法通过loc.iloc.ix等索引方式,这里记录一下: df.loc[条件,新增列] = 赋初始值 如果新增列名为已有列名,则在原来的数据列上改变 import pandas as pd import numpy as np data = pd.DataFrame(np.random.randint(0,100,40).reshape(10,4),columns=list('abcd')) print(data) data.loc[data.d >= 50,'大于

  • pandas选择或添加列生成新的DataFrame操作示例

    目录 如何向 pandas.DataFrame 添加新的列或行 选择某些列 选择某些列和行 添加新的列 更改某一列的值 补全缺失值 如何向 pandas.DataFrame 添加新的列或行 通过指定新的列名/行名来添加,或者用pandas.DataFrame的assign().insert().append()方法添加等方法. 这里,将描述以下内容. 将列添加到 pandas.DataFrame 通过指定新列名添加 用assign()方法添加/分配 用insert()方法添加到任意位置 使用 c

  • Pandas实现一列数据分隔为两列

    分割成一个包含两个元素列表的列 对于一个已知分隔符的简单分割(例如,用破折号分割或用空格分割).str.split() 方法就足够了 . 它在字符串的列(系列)上运行,并返回列表(系列). >>> import pandas as pd >>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']}) >>> df AB 0 A1-B1 1 A2-B2 >>> df['AB_split'] = df[

  • 解析pandas apply() 函数用法(推荐)

    目录 Series.apply() apply 函数接收带有参数的函数 DataFrame.apply() apply() 计算日期相减示例 参考 理解 pandas 的函数,要对函数式编程有一定的概念和理解.函数式编程,包括函数式编程思维,当然是一个很复杂的话题,但对今天介绍的 apply() 函数,只需要理解:函数作为一个对象,能作为参数传递给其它函数,也能作为函数的返回值. 函数作为对象能带来代码风格的巨大改变.举一个例子,有一个类型为 list 的变量,包含 从 1 到 10 的数据,需

  • pandas删除部分数据后重新生成索引的实现

    目录 pandas删除部分数据后重新索引 原数据 删除部分数据后 附件:网上查到的格式化用的编码 pandas常用的index索引设置 1.读取时指定索引列 2. 使用现有的 DataFrame 设置索引 3. 一些操作后重置索引 4. 将索引从 groupby 操作转换为列 5.排序后重置索引 6.删除重复后重置索引 7. 索引的直接赋值 8.写入CSV文件时忽略索引 pandas删除部分数据后重新索引 在使用pandas时,由于隔行读取删除了部分数据,导致删除数据后的索引不连续: 原数据 删

  • pandas apply多线程实现代码

    一.多线程化选择 并行化一个代码有两大选择:multithread 和 multiprocess. Multithread,多线程,同一个进程(process)可以开启多个线程执行计算.每个线程代表了一个 CPU 核心,这么多线程可以访问同样的内存地址(所谓共享内存),实现了线程之间的通讯,算是最简单的并行模型. Multiprocess,多进程,则相当于同时开启多个 Python 解释器,每个解释器有自己独有的数据,自然不会有数据冲突. 二.并行化思想 并行化的基本思路是把 dataframe

  • pandas调整列的顺序以及添加列的实现

    在对excel的操作中,调整列的顺序以及添加一些列也是经常用到的,下面我们用pandas实现这一功能. 1.调整列的顺序 >>> df = pd.read_excel(r'D:/myExcel/1.xlsx') >>> df A B C D 0 bob 12 78 87 1 millor 15 92 21 >>> df.columns Index(['A', 'B', 'C', 'D'], dtype='object') # 这是最简单常用的一种方法,

  • pandas apply 函数 实现多进程的示例讲解

    前言: 在进行数据处理的时候,我们经常会用到 pandas .但是 pandas 本身好像并没有提供多进程的机制.本文将介绍如何来自己实现 pandas (apply 函数)的多进程执行.其中,我们主要借助 joblib库,这个库为python 提供了一个非常简洁方便的多进程实现方法. 所以,本文将按照下面的安排展开,前面可能比较啰嗦,若只是想知道怎么用可直接看第三部分: - 首先简单介绍 pandas 中的分组聚合操作 groupby. - 然后简单介绍 joblib 的使用方法. - 最后,

随机推荐