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 的数据(必须要确定当前这个零表示的是数据缺失才能这样处理)