博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python库Pandas的使用技巧(一)
阅读量:3959 次
发布时间:2019-05-24

本文共 2582 字,大约阅读时间需要 8 分钟。

目录

导入pandas库

import pandas as pd

一、Pandas部分知识汇总

1、DataFrame对象的属性

pandas.Series(data=None,index=None,dtype=None, name=None)

返回值:返回一个Series对象

data:可以是一个Python列表
index与列表元素个数一致;也可以是字典,将键值对中的“值”作为Series对象的数据,将“键”作为索引;也可是一个标量值,这种情况下必须设置索引,标量值会重复来匹配索引的长度。
index:为Series对象的每个数据指定索引。
dtype:为Series对象的数据指定数据类型。
name:为Series对象起个名字。
在这里插入图片描述

2、算术运算与函数运算

(1)算术运算

适用于NumPy数组的运算符(+、-、* 、/)或其它数学函数,也适用于Series对象。可以将Series对象的数据数组与标量进行+、-、* 、/等算术运算。
(2)函数运算

>>> s = pd.Series([2,4,6],index = ["a","b","c"])>>> np.sqrt(s)           #计算各数据的平方根a    1.414214b    2.000000c    2.449490>>> np.square(s)       #计算各数据的平方a     4b    16c    36

3、数据筛选

在这里插入图片描述

二、举例尝试

1、ob=series([2,3,5,7,3,1]),建立series的时候指定索引

ob=pd.Series([2,3,5,7,3,1],index=['a','b','c','d','e','f'])print(ob)

2、创建series dt=[1,2,3,4,5] id=[‘a’,‘b’,‘c’,‘d’,‘e’]

dt=[1,2,3,4,5]id=['a','b','c','d','e']ob=pd.Series(dt,index=id)print(ob)

3、做下面的题

data1={
'subject id':['1','2','3','4','5'], 'first name':['Alex','Amy','Allen','Alice','Ayoung'], 'last name':['Anderson','Ackerman','Ali','Aoni','Atiches']}data2={
'subject id':['4','5','6','7','8'], 'first name':['Billy','Brian','Bran','Bryce','Betty'], 'last name':['Bonder','Black','Balwner','Brice','Btisan']}data3={
'subject id':['1','2','3','4','5','7','8','9','10','11'] ,'test id':[51,15,15,61,16,14,15,1,61,16]}

(1)分别变成DataFrame,取名df1,df2,df3。找出df3“test id”列最大的

df1=pd.DataFrame(data1)df2=pd.DataFrame(data2)df3=pd.DataFrame(data3)print(df1)print(df2)print(df3)print(df3['test id'].max())

(2) df1和df2沿X轴合并命名为df12X

df12X = pd.concat([df1,df2],axis=1)print(df12X)

(3)把df1和df2两个DataFrame沿着Y轴进行合并,命名为df12Y

df12Y = pd.concat([df1,df2],axis=0)print("Y轴",df12Y)

(4)查看df1的前三行数据

print(df1.head(3))

#(5)创建由下所示的Dataframe,命名为data:

#     Cite       year   cash# 0   Neijiang   20     6# 1   Chengdou   21     8# 2   Beijing    24     10
data=pd.DataFrame({
'Cite':['Neijiang','Chengdu','Beijing'], 'year':[20,21,24], 'cash':[6,8,10]})print("data",data)#5上题增加一列名为book 值为001,002,003data['book']=['001','002','003']print(data)

4、访问上一题year列,删除book列

print(data['year'])

方法一:

del data["book"]

方法二:

data=data.drop(columns=['book'],axis=0)print(data)

5、对’year’列和’cash’列分别进行开放和平方运算

方法一:

print("开方运算:",data['year']**(1/2),data['cash']**(1/2))print("平方运算:",data['year']**2,data['cash']**2)

方法二:

#math没有平方函数,自己写一个def square(x):    return x**2import math# data['year']=list(map(square(),data['year']))print('平方运算',list(map(square,data['year'])),list(map(square,data['cash'])))print('开方运算',list(map(math.sqrt,data['year'])),list(map(math.sqrt,data['cash'])))

转载地址:http://yttzi.baihongyu.com/

你可能感兴趣的文章
有序链表的合并(数据结构---单链表)
查看>>
栈实现(数据结构---数组,链表 C实现)
查看>>
POJ3903(dp,最长上升子序列,最基础题)
查看>>
POJ1836-Alignment(最长上升子序列)
查看>>
POJ1062昂贵的聘礼(Dijkstra+限制)
查看>>
POJ 2485 Highways(最小生成树,基础模板题)
查看>>
POJ 1251 Jungle Roads(最小生成树简单题)
查看>>
Floyd算法---模板
查看>>
HDU 1690---Bus System(Floyd模板题+合理定义INF)
查看>>
POJ3660---Cow Contest(Floyd,传递闭包,连通)
查看>>
POJ 2240---Arbitrage(Floyd的dp思想)
查看>>
Dijkstra算法---模板
查看>>
拓扑排序
查看>>
POJ 3680(费用流)
查看>>
校oj10532: 生成字符串(dp,最优状态转移)
查看>>
平衡二叉树(AVL树)
查看>>
优先队列---二叉堆
查看>>
POJ1521---哈夫曼编码,求最优WPL
查看>>
POJ---2010(Moo University - Financial Aid,优先队列)
查看>>
POJ---3662(Telephone Lines,最短路+二分*好题)
查看>>