学习笔记 Day 26 (pandas)

Series:

创建一个一维的数组

通过列表创建:

import pandas as pd

df = pd.Series([3,4,2,6,1,5],index=list('abcdef'))

print(df)

结果:

学习笔记 Day 26 (pandas)_第1张图片

通过字典创建:

import pandas as pd

temp_dict = {'hello':1,'world':2}

df = pd.Series(temp_dict)

print(df)

结果:

取不连续的索引:

 df[['hello','world']]

得到 1,2

Series对象本质上由两个数组构成,一个数组构成的对象的键(index,索引),一个数组构成的对象的值(values),键 -> 值/

Series中的where用法(和numpy中不一样):

import pandas as pd 

s= pd.Series(range(5))

print(s.where(s>0))

结果:

学习笔记 Day 26 (pandas)_第2张图片

满足条件的正常显示,不满足的显示nan.

 

import pandas as pd 

s= pd.Series(range(5))

print(s.where(s>1,10))

结果:

学习笔记 Day 26 (pandas)_第3张图片

满足条件,正常返回,否则等于10

DataFrame:

二位数组,series容器

不但有行索引,还有列索引(axis=1,列索引(columns),否则为行索引(index))

import pandas as pd
import  numpy as np

df = pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('wyzs'))

print(df)

字典创建DataFrame:

import pandas as pd

dict = {'name':[1,2,3],'age':[21,34,14]}

df = pd.DataFrame(dict)

print(df)

结果:

通过列表创建:

 

import pandas as pd

list = [{'name':1,age:23},{name:2,age:32},{name:3,age:43}] 
# name和age要加""号,我忘记了

df = pd.DataFrame(list)

print(df)

结果:

 DataFrame基础属性和查询:

 

学习笔记 Day 26 (pandas)_第4张图片

DataFrame中的排序方法:



df.sort_values(by='列名',ascending=True) # ascending 排序方法(默认升序)

DataFrame的索引:

DataFrame取行和取列的注意点,

1 方括号写数组,表示行索引,取行数据

2 放括号写字符串,表示列索引,去列数据

df.loc () # 通过标签获取数据,df.iloc() # 通过位置获取数据

布尔索引:

学习笔记 Day 26 (pandas)_第5张图片

 tolist() 可将Series转化成列表.

缺失数据处理:

pd.isnull(df)  # 判断是否有nan,有返回True

pd.notnull(df) # 判断是否有nan,有返回False

df.dropna(axis=0,how='any') # 只要有就删除

df.dropna(axis=0,how='all') # 一行全为nan就删除

df.dropna(axis=0,how='all',inplace=True) # inplace 是否替换

df.fillna(100) # 把df中的nan值填充成100

df.fillna(df['某一列'].mean()) # 一般填充平均值

df[df == 0] = np.nan # 处理为0 的数据(必须要确定当前这个零表示的是数据缺失才能这样处理)

你可能感兴趣的:(python,基础,python,数据分析,pandas)