pandas是数据处理利器,基于Numpy构建。
内置数据结构
- Series由一维数组和与之相关的索引组成。可以保存任何类型的数据。
- DataFrame二维表格型数据。有行索引和列索引。
导入
一般命名为pd
pip install pandas #安装
import pandas as pd
Series
创建
pd.Series( data, index, dtype, name, copy)
参数说明:
data:一组数据(ndarray 类型)。数据可以写成字典形式,就可以不需要index,字典的标签自动设为pandas数据的标签。
index:数据索引标签,如果不指定,默认从 0 开始。
dtype:数据类型,默认会自己判断。
name:设置名称。
copy:拷贝数据,默认为 False。
s1 = pd.Series([2,6,8,7,4],dtype='float64',name='first')
s1
#0 2.0
#1 6.0
#2 8.0
#3 7.0
#4 4.0
#Name: first, dtype: float64
s2 = pd.Series([2,6,8,7,4],[9,8,6,7,8],dtype='float64',name='first')
s2
#9 2
#8 6
#6 8
#7 7
#8 4
#Name: first, dtype: int64
dict创建.用标签索引时,不存在就记为NaN,标签可以重复。
data1 = {'monkey':'banana','cow':'grass','dog':'meat'}
s2 = pd.Series(data1)
s2
#monkey banana
#cow grass
#dog meat
#dtype: object
s3 = pd.Series(data1,index=['monkey','monkey','dog','dolphin'])
s3
#monkey banana
#monkey banana
#dog meat
#dolphin NaN
#dtype: object
访问
DataFrame
pd.DataFrame( data, index, columns, dtype, copy)
data:一组数据(ndarray、series, map, lists, dict 等类型)。
index:索引值 / 行标签。
columns:列标签,默认为 (0, 1, 2, …, n) 。
dtype:数据类型。
copy:拷贝数据,默认为 False。
创建
f1 = ([1,3,5],[2,4,6])
g1 = pd.DataFrame(f1,index=['odd','even'],columns=['first','second','third'],dtype=float)
print(g1)
# first second third
# odd 1.0 3.0 5.0
# even 2.0 4.0 6.0
## DataFrame的值是数组的字典创建时,其各个数组的长度需要相同。
## 如果DataFrame的值是费数组时,没有这一限制,且自动将缺失值补成NaN。
f2 = {'a':'apple','b':'banana','c':'pear'}
g2 = pd.DataFrame(f2,index=['one'])
print(g2)
# a b c
# one apple banana pear
pd.concat()可以通过相同行或者相同列的Series、DataFrame连接成一个
a = np.array([1,3],[5,7],[9,11])
m1 = [{'a':1,'b':2},{'a':5,'b':6}]
df1 = pd.DataFrame(m1)
m2 = [{'a':3,'b':4}]
df2 = pd.DataFrame(m2)
print(df1)
# a b
# 0 1 2
# 1 5 6
print(df2)
# a b
# 0 3 4
df = pd.concat([df1,df2],axis=0)
print(df)
# a b
# 0 1 2
# 1 5 6
# 0 3 4
查看数据
打开CSV格式的文件: file = pd.read_csv(r’某一文件名’)
1.查看前几条数据file.head( )
2.查看后几条数据file.tail( )
3.索引 file.index
4.列名 file.columns
5.值 file.values
6.对于数据的快速统计 file.describe
7.数据转置 file.T
8.按列排序:file.sort_values(by=[],ascending=[])
** 其中第一个变量是指定哪个列,第二个变量是排序顺序,False从小到大,True从大到小**
选择数据
- 利用标签选择数据
df.loc[行标签,列标签]
- 承接上一个concat连接的例子:
df.loc[0,'a']
#0 1
#0 3
#Name: a, dtype: int64
- 利用位置选择数据
df.iloc[列位置,列位置]
df.iloc[1,0]
# 5
df.iloc[:,1]
#0 2
#1 6
#0 4
#Name: b, dtype: int64