2-Pandas之Series和DataFrame区别

、Pandas 

  pandas的数据元素包括以下几种类型:

类型 说明
object 字符串或混合类型
int 整型
float 浮点型
datetime 时间类型
bool 布尔型

 

 

 

 

 

 

 

 二、Series与DataFrame区别:

  1. Series是带索引一维数组
  2. Series对象的两个重要属性是:index(索引)和value(数据值)
  3. DataFrame的任意一行或者一列就是一个Series对象

三、创建Series对象:pd.Series(data,index=index)

  其中data可以是很多类型:

    1. 一个列表---------->pd.Series([1,2,3])
    2. 一个ndarray------->pd.Series(np.random.randint(2),index=['a','b'])
    3. 一个python字典---->pd.Series({"a":2,"b":0})
    4. 一个标量值-------->pd.Series(3,index=[1,2,3])

  Series在算数运算中会自动对齐不同索引的数据

    例如:

1 >>> s=pd.Series([1,2,3],index=['a','b','c'])
2 >>> a=pd.Series([4,1,0],index=['b','a','c'])
3 >>> s+a
4 a    2
5 b    6
6 c    3

       unique():返回结果是一个数组,包含Series去重后的元素

      value_counts():查看每一个唯一元素的频数

四、创建DataFrame对象:pd.DataFrame(data,index,columns)

  与Series不同的是,DataFrame包括索引index表头columns

  其中data可以是很多类型:

    1. 包含列表、字典或者Series的字典
    2. 二维数组
    3. 一个Series对象
    4. 另一个DataFrame对象

   例如:

   1、从字典创建:

1 >>> d = {'one':pd.Series([1,2,3],index=['a','b','c']), 'two':pd.Series([2,3,4],index=['a','b','d'])}
2 >>> pd.DataFrame(d)
3   one  two
4 a  1.0  2.0
5 b  2.0  3.0
6 c  3.0  NaN
7 d  NaN  4.0

    2、从字典创建

1 >>> pd.DataFrame(d,index=['a','b'],columns=['w1','w2'])
2     w1   w2
3 a  NaN  NaN
4 b  NaN  NaN
5 >>> pd.DataFrame(d,index=['a','b'],columns=['one','two'])
6    one  two
7 a    1    2
8 b    2    3

 五、DataFrame的数据筛选

  与Series类似,可通过布尔表达式按照一定条件进行筛选。不同于Series的是,DataFrame布尔筛选返回的是满足筛选条件的样本的所有列的数据(即:一返回就是一条记录)。

  上例子!

1 >>> d = {'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([2,3,4],index=['a','b','d'])}
2 >>> pd.DataFrame(d)
3 >>> d[d['one']<3]
4    one  two
5 a  1.0  2.0
6 b  2.0  3.0

 六、DataFrame的删除和添加一列

  添加一列:(1)像字典一样通过赋值的方式执行

1 >>> d['three']=d['one']+d['two']

         (2)使用insert()在指定位置插入一列,例如在位置1插入新的一列'new',值为0

>>> d.insert(1,'new',np.zeros((4,1)))
>>> d
one  new  two  three
  a  1.0  0.0  2.0    3.0
  b  2.0  0.0  3.0    5.0
  c  3.0  0.0  NaN    NaN
  d  NaN  0.0  4.0    NaN

  删除一列:像字典一样------>使用pop()或者del(),pop()可以在删除列的基础之上将删除的列赋值给一个新的变量

 1 >>> del d['three']
 2 >>> d
 3    one  new  two
 4 a  1.0  0.0  2.0
 5 b  2.0  0.0  3.0
 6 c  3.0  0.0  NaN
 7 d  NaN  0.0  4.0
 8 >>> new = d.pop('new')
 9 >>> d
10    one  two
11 a  1.0  2.0
12 b  2.0  3.0
13 c  3.0  NaN
14 d  NaN  4.0
15 >>> new
16 a    0.0
17 b    0.0
18 c    0.0
19 d    0.0
20 Name: new, dtype: float64

七、DataFrame修改索引名:使用rename()方法

 1 >>> d
 2    one  two
 3 a  1.0  2.0
 4 b  2.0  3.0
 5 c  3.0  NaN
 6 d  NaN  4.0
 7 >>> i = {'a':'A','b':'B'}
 8 >>> d.rename(index=i)
 9    one  two
10 A  1.0  2.0
11 B  2.0  3.0
12 c  3.0  NaN
13 d  NaN  4.0

 

posted @ 2020-07-25 20:04  大脸猫12581  阅读(1863)  评论(0编辑  收藏  举报