python中pandas基本数据类型-1

以下代码都是通过jupyter notebook 写的 在pycharm里也同样可以运行,
把想得到的结果print()就可以了,例:s=pd.Series([4,-7,3,9]) print(s)
但是numpy和pandas模块需要下载,下载好就可以用了

Serise

	pandas.Series()返回一个有index和values属性的数据对象
import pandas as pd#导入pandas模块 
import numpy as np
from pandas import Series,DataFrame
#例:
s=pd.Series([4,-7,3,9])
s
#结果:索引,值
#     0     4
#     1,   -7
#     2,    3
#     3,    9
#他们返回的是int类型

s1=Series([4,7,6,5],index=['a','b','c','d'],dtype=float)
s1
#结果:索引,值
#     a    4.0
#     b    7.0
#     c    6.0
#     d    5.0
#    dtype: float64
#可以自定义索引,但索引长度与值长度必须一致,否则会报错,默认类型为64位,可以更改为float32,把dtype改成np.float32

读取Series

1,使用0-n的索引
2,自定义索引
#数字索引读取
#在中括号里输入下标即可
s1[0]
#结果:4.0

#自定义索引读取
s1['a']
#结果:4.0

#如果自定义索引是纯数字,就不能用0-n的索引读取了,只能用自定义
s2=Series([4,7,6,5],index=[4,5,6,7],dtype=np.float64)
s2
#结果:索引,值
#      4    4.0
#      5    7.0
#      6    6.0
#      7    5.0
#      dtype: float64

Sereis.loc[‘自定义索引’] || Sereis.iloc[0-n的数字]

s2.loc[6]
#结果:6.0

s2.iloc[2]
#结果:6.0

#有则改之无则加进去 xxx.loc['yy']=new
s1.loc['e']=8
s1
#结果:索引,值
#      a    4.0
#      b    7.0
#      c    6.0
#      d    5.0
#      e    8.0
#      dtype: float64

读取多个值 会得到新的对象

s1
#结果:索引,值
#       a    4.0
#	b    7.0
#	c    6.0
#	d    5.0
#	e    8.0
#	dtype: float64

#单点读取
s1[['a','c']]
#结果: 索引,值
#	a    4.0
#	c    6.0
#	dtype: float64

#区间读取 Series[start,end,step]
s1['a':'c']
#结果: 索引,值
#	a    4.0
#	b    7.0
#	c    6.0
#	dtype: float64

#读取 a c e
s1[::2]
#结果: 索引,值
#	a    4.0
#	c    6.0
#	e    8.0

s1['a':'e':2]
#结果: 索引,值
#	a    4.0
#	c    6.0
#	e    8.0

通过字典数据的到Series

key变成索引,value变成值
build_price={'beijing':68000,'shanghai':54000,'guangzhou':35000,'shenzhen':72000}
s3=Series(build_price)
s3
#结果:  索引,	      值
#       beijing      68000
#	shanghai     54000
#	guangzhou    35000
#	shenzhen     72000
#	dtype: int64

# 给定index参数值,他会进行匹配,
index4=['beijing','guangzhou','shanghai','shenzhen']
s4=Series(build_price,index=index4)
s4
#结果:  索引,       值
#	beijing      68000
#	guangzhou    35000
#	shanghai     54000
#	shenzhen     72000
#	dtype: int64

#匹配不上为NAN
index4=['beijing','guangzhou','shanghai','shenzheng','haerbin']
s4=Series(build_price,index=index4)
s4
#结果:  索引,       值
#	beijing      68000.0
#	guangzhou    35000.0
#	shanghai     54000.0
#	shenzheng        NaN
#	haerbin          NaN
#	dtype: float64

#当然,创建后再更改index也是可以的
s3.index=list('abcd')
s3
#结果: 索引,值
#	a    68000
#	b    54000
#	c    35000
#	d    72000
#	dtype: int64

DataFrame表格型数据,就像excel有行有列

把numpy的2维数组转为DataFrame
#默认行索引与列索引都是0-n
#创建一个值是10到22的一个表格,行数和列数分别为3行4列
df = DataFrame( np.arange(10,22).reshape(3,4) )
df

#可以自定义索引
df1= DataFrame( np.arange(10,22).reshape(3,4),
               index=list('abc'),
              columns='one,two,three,four'.split(','))
df1

通过字典来创建DataFrame

df_dict={
    'city':'北京,上海,广州,深圳,台北'.split(','),
    'price':(6800,54000,35000,72000,50000),
    'year':np.arange(2015,2020)
}
df2=DataFrame(df_dict)
df2

#查看列字段是什么
df2.columns

#我们可以更改列索引的顺序
DataFrame(df_dict,columns=['year','city','price'])

读取DataFrame

	df['']读取列
	df.列名称
	df.loc[]读取行
#查看这个列的值
df2['city']

#也可以这么写
df2.city

新增加列

只能 df['columnName'] =值
不能 df.xxx=值
#新增一列
#但是值是一样的
df2['new1']=5
df2

#新增一列
#但是值不是一样的
df2['new2']=np.arange(5.)
df2

#列已经存在,则是修改
df2['new1']=100
df2

行增加 与修改

	df.loc[]=xxx
#新增加一行,但是行值是一样的
df2.loc[6]=6
df2
#新增加一列,也可以是字符串
df2.loc['new']='行'
df2
#查看df2的最后一行
df2.iloc[-1]
#读取单一值 df.loc[行,列]
#取出2019
#直接读取
df2.loc[4,'year']
#间接读取
df2.year[4]
#间接读取
df2.loc[4].loc['year']
#修改
df2.loc[4,'year']=2020

当我们想增加新列 我们如果直接给数字或者是数组的时候 行索引是自动匹配的

但是如果我们给的数据已经有索引的Series。而Series是有索引的,那么就会进行 索引匹配,能匹配上则给值进去,不能则没有
#创建时给相同索引
spe_s2=Series(np.arange(7)*3,index=df2.index)
spe_s2

#直接复制values就不涉及到索引了
df2['new7']=spe_s2.values
df2

删除

del df[列名称] 删除列
删除df2字段名为new5列
del df2['new5']

#df.drop(key  , axis=0 ,inplace=False) axis(控制删行删列)inplace是否在原数据修改
#key 具体的名称
df2.drop('new')

以上这些只是他们的用法,例题等

·

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值