2021-03-31 python数据处理系统学习(十三)Pandas常用的数据结构

2021-03-31 python数据处理系统学习(十三)Pandas常用的数据结构

1、Series类-创建一个series序列

data通过列表、字典、array等创建
最终形式为:pandas.series(data,index,dtype,name)

import pandas as pd
import numpy as np
series1=pd.Series([2.8,3.01,8.99,8.59,5.18])
series1
Out[1]: 
0    2.80
1    3.01
2    8.99
3    8.59
4    5.18
dtype: float64

type(series1)
Out[2]: pandas.core.series.Series

series1=pd.Series([2.8,3.01,8.99,8.59,5.18],index=['a','b','c','d','e'],name='This is a series')
series1
Out[3]: 
a    2.80
b    3.01
c    8.99
d    8.59
e    5.18
Name: This is a series, dtype: float64

用array进行创建:

series2=pd.Series(np.array([2.8,3.01,8.99,8.59,5.18]),index=['a','b','c','d','e'])

series2
Out[5]: 
a    2.80
b    3.01
c    8.99
d    8.59
e    5.18
dtype: float64

字典:

series3=pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':8.59,'浙江':5.18})
series3
Out[6]: 
北京    2.80
上海    3.01
广东    8.99
江苏    8.59
浙江    5.18
dtype: float64

2、Series类-series的性质

2.1 values

series3.values
Out[7]: array([2.8 , 3.01, 8.99, 8.59, 5.18])

2.2 index

series3.index
Out[8]: Index(['北京', '上海', '广东', '江苏', '浙江'], dtype='object')

series3.index.values
Out[9]: array(['北京', '上海', '广东', '江苏', '浙江'], dtype=object)

2.3 dtypes

series3.dtypes
Out[10]: dtype('float64')

2.4 ndims

series3.ndim
Out[11]: 1

2.5读取指定数据

通过位置读取:

series3[0:3]
Out[12]: 
北京    2.80
上海    3.01
广东    8.99
dtype: float64

通过标签读取:

series3['北京':'广东']
Out[13]: 
北京    2.80
上海    3.01
广东    8.99
dtype: float64

2.6 append添加信息

series4=pd.Series({'四川':3.80,'重庆':2.01})
series3.append(series4)
Out[14]: 
北京    2.80
上海    3.01
广东    8.99
江苏    8.59
浙江    5.18
四川    3.80
重庆    2.01
dtype: float64

2.7 改变元素的信息

series3['北京']=2.89

series3
Out[16]: 
北京    2.89
上海    3.01
广东    8.99
江苏    8.59
浙江    5.18
dtype: float64

2.8 删除元素

series5=series3.append(series4)
series5.drop('四川')
Out[17]: 
北京    2.89
上海    3.01
广东    8.99
江苏    8.59
浙江    5.18
重庆    2.01
dtype: float64

但是这种情况,原本的序列中元素并没有被删除,即只返回视图,并没有对元素进行操作,显示如下:

series5
Out[18]: 
北京    2.89
上海    3.01
广东    8.99
江苏    8.59
浙江    5.18
四川    3.80
重庆    2.01
dtype: float64

但是如果用以下方法,则不仅对视图进行操作,还改变了元素:

series5.drop('四川',inplace=True)
series5
Out[19]: 
北京    2.89
上海    3.01
广东    8.99
江苏    8.59
浙江    5.18
重庆    2.01
dtype: float64

删除两个元素:

series5=series3.append(series4)
series5.drop(['四川','重庆'],inplace=True)
series5
Out[23]: 
北京    2.89
上海    3.01
广东    8.99
江苏    8.59
浙江    5.18
dtype: float64

3、DataFrame类-创建DataFrame

DataFrame既有行索引又有列索引,可以将Series看成其中的一行/一列
用列表创建:

list1=[['张三',23,'male'],['李四',24,'female'],['王二',26,'female']]
list1
Out[24]: [['张三', 23, 'male'], ['李四', 24, 'female'], ['王二', 26, 'female']]

df1=pd.DataFrame(list1,columns=['name','age','gender'])

df1
Out[26]: 
  name  age  gender
0   张三   23    male
1   李四   24  female
2   王二   26  female

用字典创建:

df2=pd.DataFrame({'name':['张三','李四','王二'],'age':[23,24,26],'gender':['male','female','female']})
df2
Out[27]: 
  name  age  gender
0   张三   23    male
1   李四   24  female
2   王二   26  female

用array创建:

array1=np.array(list1)
array1
df3=pd.DataFrame(array1,columns=['name','age','gender'],index=['a','b','c'])#index长度要和column的长度一样
df3
Out[28]: 
  name age  gender
a   张三  23    male
b   李四  24  female
c   王二  26  female

4、DataFrame的性质

4.1 values

df3.values
Out[29]: 
array([['张三', '23', 'male'],
       ['李四', '24', 'female'],
       ['王二', '26', 'female']], dtype=object)

结果会以数组的形式输出。

4.2 shape

df3.shape
Out[30]: (3, 3)

4.3dtypes

df3.dtypes
Out[31]: 
name      object
age       object
gender    object
dtype: object

df2.dtypes
Out[32]: 
name      object
age        int64
gender    object
dtype: object

4.4 将column输出

df2.columns
Out[33]: Index(['name', 'age', 'gender'], dtype='object')

df2.columns.tolist()
Out[34]: ['name', 'age', 'gender']

4.5 ndim和size

df2.ndim
Out[35]: 2

df2.size#输出的是元素个数
Out[36]: 9

4.6 输出index

df3.index
Out[39]: Index(['a', 'b', 'c'], dtype='object')

df3.index.tolist()
Out[40]: ['a', 'b', 'c']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值