微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pandas学习笔记

1. 数据结构

Pandas主要有三种数据:

  • Series(一维数据,大小不可变)
  • DataFrame(二维数据,大小可变)
  • Panel(三维数据,大小可变)

Series

具有均匀数据的一维数组结构。例如1,3,5,7,...的集合

1 3 5 7 ...

 

 

关键点

  • 均匀数据
  • 尺寸大小不变
  • 数据值可变

DataFrame

具有异构数据的二维数据。例如

姓名 年龄 性别
小明 20
小红 15
小刚 18

 

 

 

 

 

 

关键点

  • 异构数据
  • 大小可变
  • 数据可变

Panel

具有异构数据的三维数据结构,可以说成是DataFrame的容器。

关键点

  • 异构数据
  • 大小可变
  • 数据可变

2. Series

Series是能够保存任何类型的数据(整型,字符串,浮点数,python对象等)的一维标记数据。

构造函数

pandas.Series(data, index, dtype, copy)

参数 描述
data 数据采取各种形式,如:ndarray,list,constants
index 索引值必须是唯一的和散列的,与数据的长度相同。认np.arange(n)如果没有索引被传递。
dtype 用于数据类型。如果没有,将推断数据类型。
copy 复制数据,认为false

 

 

 

 

 

 

 

构建一个空的Series

1 import pandas as pd
2 s=pd.Series()
3 print(s)

输出

Series([], dtype: float64)

如果数据是ndarray,则传递的索引必须具有相同的长度。如果没有传递索引值,那么认索引是(0 - n-1)

1 import pandas as pd
2 import numpy as np
3 data = np.array(['a','b','c','d'])
4 s = pd.Series(data)
5 print(s)

输出

0    a
1    b
2    c
3    d
dtype: object
1 import pandas as pd
2 import numpy as np
3 data = np.array(['a','b','c','d'])
4 s = pd.Series(data,index=[100,101,102,103])
5 print(s)

输出

100    a
101    b
102    c
103    d
dtype: object

从字典(dict)创建一个Series,没有指定索引,则使用字典键作为索引,如果指定索引则使用指定的索引值。

1 import pandas as pd
2 import numpy as np
3 data = {'a' : 0., 'b' : 1., 'c' : 2.}
4 s = pd.Series(data)
5 print(s)
 输出
a    0.0
b    1.0
c    2.0
dtype: float64
1 import pandas as pd
2 import numpy as np
3 data = {'a' : 0., 'b' : 1., 'c' : 2.}
4 s = pd.Series(data,index=['b','c','d','a'])
5 print(s)

输出

b    1.0
c    2.0
d    NaN
a    0.0
dtype: float64

从标量创建一个系列,如果数据是标量值,则必须提供索引。如果索引长度超过数据长度,则将重复该值以匹配索引的长度。

1 import pandas as pd
2 import numpy as np
3 s = pd.Series(5, index=[0, 1, 2, 3])
4 print(s)

输出

0    5
1    5
2    5
3    5
dtype: int64

从具有位置的Series中访问数据,Series中的数据可以使用类似访问ndarray中的数据来访问。

1 import pandas as pd
2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
3 print(s)
4 print(s[0])

输出

a    1
b    2
c    3
d    4
e    5
dtype: int64
1
1 import pandas as pd
2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
3 print(s[:3])

输出

a    1
b    2
c    3
dtype: int64
1 import pandas as pd
2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
3 print(s[-3:])

输出

c    3
d    4
e    5
dtype: int64

使用标签检索数据,通过索引标签获取和设置值。

1 import pandas as pd
2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
3 print(s['a'])

输出

1
1 import pandas as pd
2 s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
3 print(s[['a','c','d']])

输出

a    1
c    3
d    4
dtype: int64

如果不包含标签,则会出项异常。

3. DataFrame

pandas.DataFrame(data, index, columns, dtype, copy)

构造函数的参数:

参数 描述
data 数据采取各种形式,如:ndarray,series,map,lists,dict,constant和DataFrame。
index 对于行标签
columns 对于列标签
dtype 每列的数据类型
copy 认值为False

 

 

 

 

 

 

 

 

创建一个空的DataFrame

1 import pandas as pd
2 df = pd.DataFrame()
3 print(df)

输出

Empty DataFrame
Columns: []
Index: []

从列表创建DataFrame

1 import pandas as pd
2 data = [1,2,3,4,5]
3 df = pd.DataFrame(data)
4 print(df)

输出

   0
0  1
1  2
2  3
3  4
4  5
1 import pandas as pd
2 data = [['Alex',10],['Bob',12],['Clarke',13]]
3 df = pd.DataFrame(data,columns=['Name','Age'])
4 print(df)

输出

     Name  Age
0    Alex   10
1     Bob   12
2  Clarke   13
1 import pandas as pd
2 data = [['Alex',10],['Bob',12],['Clarke',13]]
3 df = pd.DataFrame(data,columns=['Name','Age'],dtype=float)
4 print(df)

输出

     Name   Age
0    Alex  10.0
1     Bob  12.0
2  Clarke  13.0

ndarray/Lists的字典来创建DataFrame,所有的ndarrays必须具有相同的长度,如果传递了索引,则索引的长度应等于数组的长度,如果没有则使用认索引。

1 import pandas as pd
2 data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
3 df = pd.DataFrame(data)
4 print(df)

输出

    Name  Age
0    Tom   28
1   Jack   34
2  Steve   29
3  Ricky   42

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐