浅谈Pandas:Series和DataFrame间的算术元素
如下所示:
import numpy as np import pandas as pd from pandas import Series,DataFrame
一、Series与Series
s1 = Series([1,3,5,7],index=['a','b','c','d']) s2 = Series([2,4,6,8],index=['a','b','c','e'])
索引对齐项相加,不对齐项的值取NaN
s1+s2 1 a 3.0 b 7.0 c 11.0 d NaN e NaN dtype: float64
二、DataFrame与DataFrame
data1 = {'水果':['苹果','梨','草莓'], '数量':[3,2,5], '价格':[10,9,8]} data2 = {'数量':[3,2,5,6], '价格':[10,9,8,7]} df1 = DataFrame(data1) df2 = DataFrame(data2)
在行和列上同时对齐后进行计算,如果找不到对应项则取NaN
print(df1*df2)
价格 数量 水果 0 100.0 9.0 NaN 1 81.0 4.0 NaN 2 64.0 25.0 NaN 3 NaN NaN NaN
三、Series与DataFrame
1.利用广播实现DataFrame与某行的运算
print(df2+df2.iloc[0]) # 将第0行加到所有行上
价格 数量 0 20 6 1 19 5 2 18 8 3 17 9
2.利用广播实现DataFrame与某列的运算(指定轴axis=0)
print(df2.sub(df2.iloc[:,0],axis=0))
价格 数量 0 0 -7 1 0 -7 2 0 -3 3 0 -1
3.运算时如果无法对齐,则填充NaN
s = Series([1,1,1],index=['数量','价格','重量']) print(df2+s)
价格 数量 重量 0 11 4 NaN 1 10 3 NaN 2 9 6 NaN 3 8 7 NaN
以上这篇浅谈Pandas:Series和DataFrame间的算术元素就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
对pandas中两种数据类型Series和DataFrame的区别详解
1. Series相当于数组numpy.array类似 s1=pd.Series([1,2,4,6,7,2]) s2=pd.Series([4,3,1,57,8],index=['a','b','c','d','e']) print s2 obj1=s2.values # print obj1 obj2=s2.index # print obj2 # print s2[s2>4] # print s2['b'] 1.Series 它是有索引,如果我们未指定索引,则是以数字自动生成. 下面是一些例
-
pandas把dataframe转成Series,改变列中值的类型方法
使用 pd.Series把dataframe转成Series ts = pd.Series(df['Value'].values, index=df['Date']) 使用astype改变列中的值的类型,注意前面要有np df['列名'] = df['列名'].astype(np.int64) 以上这篇pandas把dataframe转成Series,改变列中值的类型方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: python panda
-
pandas 对series和dataframe进行排序的实例
本问主要写根据索引或者值对series和dataframe进行排序的实例讲解 代码: #coding=utf-8 import pandas as pd import numpy as np #以下实现排序功能. series=pd.Series([3,4,1,6],index=['b','a','d','c']) frame=pd.DataFrame([[2,4,1,5],[3,1,4,5],[5,1,4,2]],columns=['b','a','d','c'],index=['one','
-
python pandas 对series和dataframe的重置索引reindex方法
reindex更多的不是修改pandas对象的索引,而只是修改索引的顺序,如果修改的索引不存在就会使用默认的None代替此行.且不会修改原数组,要修改需要使用赋值语句. series.reindex() import pandas as pd import numpy as np obj = pd.Series(range(4), index=['d', 'b', 'a', 'c']) print obj d 0 b 1 a 2 c 3 dtype: int64 print obj.reinde
-
Pandas DataFrame 取一行数据会得到Series的方法
Pandas DataFrame 取一行数据会得到Series的方法 如题,想要取如下dataframe的一行数据,以为得到的还是dataframe lista = [1, 3, 7,4,0] listb = [3, 3, 4,4,5] listc = [3, 3, 4,4,6] df1 = pd.DataFrame({'col1':lista,'col2':listb,'colb':listc}) print(df1) print(df1.loc[0,:]) print(type(df1.lo
-
Pandas:Series和DataFrame删除指定轴上数据的方法
如下所示: import numpy as np import pandas as pd from pandas import Series,DataFrame 一.drop方法:产生新对象 1.Series o = Series([1,3,4,7],index=['d','c','b','a']) print(o.drop(['d','b'])) c 3 a 7 dtype: int64 2.DataFrame data = {'水果':['苹果','梨','草莓'], '数量':[3,2,5
-
浅谈Pandas:Series和DataFrame间的算术元素
如下所示: import numpy as np import pandas as pd from pandas import Series,DataFrame 一.Series与Series s1 = Series([1,3,5,7],index=['a','b','c','d']) s2 = Series([2,4,6,8],index=['a','b','c','e']) 索引对齐项相加,不对齐项的值取NaN s1+s2 1 a 3.0 b 7.0 c 11.0 d NaN e NaN d
-
浅谈Pandas Series 和 Numpy array中的相同点
相同点: 可以利用中括号获取元素 s[0] 可以的得到单个元素 或 一个元素切片 s[3,7] 可以遍历 for x in s 可以调用同样的函数获取最大最小值 s.mean() s.max() 可以用向量运算 <1 + s> 和Numpy一样, Pandas Series 也是用C语言, 因此它比Python列表的运算更快 以上这篇浅谈Pandas Series 和 Numpy array中的相同点就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
浅谈pandas中DataFrame关于显示值省略的解决方法
python的pandas库是一个非常好的工具,里面的DataFrame更是常用且好用,最近是越用越觉得设计的漂亮,pandas的很多细节设计的都非常好,有待使用过程中发掘. 好了,发完感慨,说一下最近DataFrame遇到的一个细节: 在使用DataFrame中有时候会遇到表格中的value显示不完全,像下面这样: In: import pandas as pd longString = u'''真正的科学家应当是个幻想家:谁不是幻想家,谁就只能把自己称为实践家.人生的磨难是很多的, 所以我们
-
浅谈pandas dataframe对除数是零的处理
如下例 data2['营业成本率'] = data2['营业成本本年累计']/data2['营业收入本年累计']*100 但有营业收入本年累计为0的情况, 则营业成本率为inf,即无穷大,而需要在表中体现为零,用如下方法填充: data2['营业成本率'] = data2['营业成本本年累计']/data2['营业收入本年累计']*100 data2['营业成本率'].replace([np.inf, -np.inf, "", np.nan], 0, inplace=True) 当然,
-
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
pandas为我们提供了多种切片方法,而要是不太了解这些方法,就会经常容易混淆.下面举例对这些切片方法进行说明. 数据介绍 先随机生成一组数据: In [5]: rnd_1 = [random.randrange(1,20) for x in xrange(1000)] ...: rnd_2 = [random.randrange(1,20) for x in xrange(1000)] ...: rnd_3 = [random.randrange(1,20) for x in xrange(1
-
浅谈Pandas中map, applymap and apply的区别
1.apply() 当想让方程作用在一维的向量上时,可以使用apply来完成,如下所示 In [116]: frame = DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['Utah', 'Ohio', 'Texas', 'Oregon']) In [117]: frame Out[117]: b d e Utah -0.029638 1.081563 1.280300 Ohio 0.647747 0.831136 -1.
-
浅谈pandas用groupby后对层级索引levels的处理方法
层及索引levels,刚开始学习pandas的时候没有太多的操作关于groupby,仅仅是简单的count.sum.size等等,没有更深入的利用groupby后的数据进行处理.近来数据处理的时候有遇到这类问题花了一点时间,所以这里记录以及复习一下:(以下皆是个人实践后的理解) 我使用一个实例来讲解下面的问题:一张数据表中有三列(动物物种.物种品种.品种价格),选出每个物种从大到小品种的前两种,最后只需要品种和价格这两列. 以上这张表是我们后面需要处理的数据表 (物种 品种 价格) levels
-
浅谈pandas.cut与pandas.qcut的使用方法及区别
pandas.cut: pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False) 参数: 1. x,类array对象,且必须为一维,待切割的原形式 2. bins, 整数.序列尺度.或间隔索引.如果bins是一个整数,它定义了x宽度范围内的等宽面元数量,但是在这种情况下,x的范围在每个边上被延长1%,以保证包括x的最小值或最大值.如果bin是序列,它定义了允许非均匀
-
浅谈pandas中shift和diff函数关系
通过?pandas.DataFrame.shift命令查看帮助文档 Signature: pandas.DataFrame.shift(self, periods=1, freq=None, axis=0) Docstring: Shift index by desired number of periods with an optional time freq 该函数主要的功能就是使数据框中的数据移动,若freq=None时,根据axis的设置,行索引数据保持不变,列索引数据可以在行上上下移动
-
浅谈Pandas 排序之后索引的问题
如下所示: In [1]: import pandas as pd ...: df=pd.DataFrame({"a":[1,2,3,4,5],"b":[5,4,3,2,1]}) In [2]: df Out[2]: a b 0 1 5 1 2 4 2 3 3 3 4 2 4 5 1 In [3]: df=df.sort_values(by="b") # 按照b列排序 In [4]: df Out[4]: a b 4 5 1 3 4 2 2 3
随机推荐
- jquery动态添加元素事件失效问题解决方法
- 关于Appserv无法打开localhost问题的解决方法
- PHP计划任务之关闭浏览器后仍然继续执行的函数
- 有趣的bootstrap走动进度条
- PHP magento后台无法登录问题解决方法
- Android TextView 字体滚动效果
- Docker Base Image自己创建具体实现
- JavaScript中的变量作用域介绍
- javascript基于定时器实现进度条功能实例
- 深入理解JavaScript系列(29):设计模式之装饰者模式详解
- javascript实现的HashMap类代码
- 详解vue中computed 和 watch的异同
- 浅谈mongodb中query查询
- MySQL高可用MMM方案安装部署分享
- Jquery中的$.each获取各种返回类型数据的使用方法
- 关于表单的两点交互体验改进技巧
- Java的方法重载与变量作用域简介
- python使用装饰器和线程限制函数执行时间的方法
- 汉字转拼音软件制件示例(汉字转字母)
- Vue2 SSR渲染根据不同页面修改 meta