学习笔记 Day 26 (pandas)
Series:
创建一个一维的数组
通过列表创建:
import pandas as pd df = pd.Series([3,4,2,6,1,5],index=list(abcdef)) print(df)
结果:
通过字典创建:
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))
结果:
满足条件的正常显示,不满足的显示nan.
import pandas as pd s= pd.Series(range(5)) print(s.where(s>1,10))
结果:
满足条件,正常返回,否则等于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基础属性和查询:
DataFrame中的排序方法:
df.sort_values(by=列名,ascending=True) # ascending 排序方法(默认升序)
DataFrame的索引:
DataFrame取行和取列的注意点,
1 方括号写数组,表示行索引,取行数据
2 放括号写字符串,表示列索引,去列数据
df.loc () # 通过标签获取数据,df.iloc() # 通过位置获取数据
布尔索引:
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 的数据(必须要确定当前这个零表示的是数据缺失才能这样处理)
