python DataFrame列运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python DataFrame列运算相关的知识,希望对你有一定的参考价值。

请教如何对dataFrame的两列相乘后的结果作为新列添加进Dataframe中?

import pandas as pd

#新建一个dataFrame,df

d=

'消费总金额':[100,150,200],

'消费次数':[1,2,2],

df=pd.DataFrame(d)

#新增一列‘平均值’表示两者相除

df['平均值'] =df.apply(lambda x: x[0] / x[1], axis=1)

df

参考技术A

用pandas中的DataFrame时选取行或列:

1、import numpy as npimport pandas as pdfrom pandas import Sereis, DataFrameser = Series(np.arange(3.))data ==DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))data['w']  

2、#选择表格中的'w'列,使用类字典属性,返回的是Series类型data.w    

3、#选择表格中的'w'列,使用点属性,返回的是Series类型data[['w']]  

4、#选择表格中的'w'列,返回的是DataFrame类型data[['w','z']]  

5、#选择表格中的'w'、'z'列data[0:2]  #返回第1行到第2行的所有行,前闭后开,包括前不包括后data[1:2]  

6、#返回第2行,从0计,返回的是单行,通过有前后值的索引形式,

7、#如果采用data[1]则报错data.ix[1:2] 

8、#返回第2行的第三种方法,返回的是DataFrame,跟data[1:2]同data['a':'b']  

9、#利用index值进行切片,返回的是**前闭后闭**的DataFrame

10、#即末端是包含的

补充:

1、Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。

2、Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

3、常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。

4、比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

参考技术B import pandas as pd
a=[[1,2,3],[4,5,6]]
b=pd.DataFrame(a)
c=b[0]*b[1]
#df.insert(idx, col_name, value)
#insert 三个参数,插到第几列,该列列名,值
b.insert(3,3,c)

参考技术C

参考技术D 可以直接相乘的df['c']=df['a']*df['b']

python中,dataframe或series对象可以对列进行运算么(加减乘除)?

可以对列进行运算,使用apply方法即可。

具体分析如下:

    前提:加载numpy,pandas和Series,DataFrame,生成一个3乘3的DataFrame,命名为frame,用frame的第二列生成Series,命名为series1。

    加法运算,frame.add(series1,axis=0)。减法运算:sub分别尝试不填充和填充,对比效果。

    乘法运算,frame.mul(series1,axis=0),除法运算,frame.div(series1,axis=0)。

    这里的Series是DataFrame的一列生成的,所以不会出现找不到索引的情况;若找不到索引则生成并集,缺失值则表示为NAN,四则运算的括号中有个参数axis=0表示按行索引匹配并且在列上进行广播。

    拓展:Python是目前最流行最简单用途最广泛的编程语言,大数据时代最应该学习的一门编程语言。其中,数据分析的库pandas是Python最经典的库之一。

参考技术A

可以的。使用apply方法。例如

s.apply(lambda x: x + 1)
df.apply(lambda x: x + 1)

dataframe默认是针对所有列都进行操作。

参考技术B

可以使用apply方法例如s.apply(lambdax:x+1df.apply(lambdax:x+1)dataframe默认是针对所有列都进行操作。

dir和help是Python中两个强大的built-in函数,就像Linux的man一样,绝对是开发的好帮手比如查看list的所以属性:

dir(list)输出:

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

然后查看list的pop方法的作用和用法:

help(list.pop)输出:

Help on method_descriptor:

pop(...)L.pop([index]) -> item -- remove and return item at index (default last).

Raises IndexError if list is empty or index is out of range。

参考技术C

可以对列进行运算,需要使用apply方法,例如:s.apply(lambda x:x+1);df.apply(lambda x:x+1)。

Python是一种面向对象、解释型计算机程序设计语言,Python 源代码同样遵循 GPL协议。Python语法简洁而清晰,具有丰富和强大的类库,它常被昵称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起。

以上是关于python DataFrame列运算的主要内容,如果未能解决你的问题,请参考以下文章

python中,dataframe或series对象可以对列进行运算么(加减乘除)?

python-pandas基础数据结构(DataFrame)

python中,dataframe或series对象可以对列进行运算么(加减乘除)

如何根据部分匹配选择 DataFrame 列?

Pandas:如何从给定(行,列)对列表的 DataFrame 中检索值?

在 Julia 中加入 DataFrame