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 pda=[[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最经典的库之一。
可以的。使用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对象可以对列进行运算么(加减乘除)