一、数据结构
pandas有两个主要数据结构:Series和DataFrame。
1-1 . Series
Series是一种类似于一维数组的对象,由一组数据及一组与之相关的即索引组成,即index和values两部分,可以通过索引的方式选取Series中的单个或一组值。
Series的创建
pd.Series(list,index=[ ]),第二个参数是Series中数据的索引,可以省略。
import numpy as np, pandas as pd
arr1 = np.arange(10)
s1 = pd.Series(arr1)
print(s1) #由于我们没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引
第一个参数可以是列表\ndarray \字典 \DataFrame中的某一行或某一列
1-2 . DataFrame
DataFrame是一个表格型的数据类型,每列值类型可以不同,是最常用的pandas对象。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。
DataFrame的创建方式-1
pd.DataFrame(data,columns = [ ],index = [ ]):columns和index为指定的列、行索引,并按照顺序排列。
创建DataFrame最常用的是直接传入一个由等长列表或NumPy数组组成的字典,会自动加上行索引,字典的键会被当做列索引:
import pandas as pd
data = {
'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],
'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
df= pd.DataFrame(data)
print(df)
如果创建时指定了columns和index索引,则按照索引顺序排列,并且如果传入的列在数据中找不到,就会在结果中产生缺失值,用 NaN表示
创建DataFrame方式2
使用嵌套字典,如果嵌套字典传给DataFrame,pandas就会被解释为外层字典的键作为列,内层字典键则作为行索引:
pop = {
'Nevada': {
2001: 2.4, 2002: 2.9},
'Ohio': {
2000: 1.5, 2001: 1.7, 2002: 3.6}}
df3 = pd.DataFrame(pop)
print( df3)
二、pandas的基本功能
#数据源
dt_1 = {
'KEY1': ['K0','K0','K1','K2'],
'KEY2': [14,12,13,11],
'A': [15,1,np.nan,17],
'B': [np.nan,22,'23','24']
}
dt_2 = {
'Company':['GOOGLE','GOOGLE','ORACLE',