shift+tab:查看参数
1.pandas数据集成
通过用numpy的concatenate方法进行级联
nd3=np.concatenate([nd1,nd2],axis=0)
如果相同行不同列的数据集进行级联,那么使用列的级联(axis=1),
形成一个两个数据聚求和之后的列的级联
nd3=np.concatenate([nd1,nd2],axis=1)
nd3
追加数据到末尾,汇总数据:df1.append(df2)
pandas的级联操作使用concat方法
pd.concat([df1,df2])
对列进行级联操作:pd.concat([df1,df2],axis=1,ignore_index=False)
可以在数据集中增加一个键,可以通过axis来指定是增加行索引还是列索引,
并且增加的索引都是第一级索引
df3=pd.concat([df1,df2],axis=0,keys=(‘期中’,‘期末’))
先把行转换成列,然后在把列转换成行
df3.unstack(level=0).stack() 注意:如果不写level参数,默认是1
merge():类似于表连接操作,输出连接条件的数据,merge输出具有共同属性的数据
merge类似于sql中的表连接,默认是内连接,如果想要其他的连结方式,那么可以用how=’'参数指定是那种连接操作
例子:df1.merge(df2,how=‘outer’) 相当于全外连接
将Series用DataFrame装起来,并起一个列索引:
df1=DataFrame(s)
df1.columns=[‘score_mean’]
df1
显示行索引:df1.reset_index()
pandas的行列转换还可以用T这个属性进行转换:df2=df1.T
没有相同属性时将两个pandas数据集进行融合:df.merge(df3,left_index=True,right_index=True)
2.pandas数据透视表
透视表,透过表象,看“本质” ;分组,透视表就是分组聚合
创建数据透视表:pd.pivot_table(df,values=[‘Weight’,‘IQ’],index=[‘Hand’]).round(1)
通过分组聚合实现数据透视表功能:df2=df.groupby(by=[‘Hand’])[[‘Weight’,‘IQ’]].mean().round(1) ;df2.sort_index(axis=1)
可以在创建数据透视表的同时,给出值要求的统计计算:pd.pivot_table(df,values=[‘Weight’,‘IQ’],index=[‘Hand’,‘Sex’],aggfunc=[‘max’,‘min’,‘mean’]).round(1)
对不同列的属性求不同的算术值:pd.pivot_table(df,values=[‘Weight’,‘IQ’],index=[‘Smoke’],aggfunc={‘Weight’:‘mean’,‘IQ’:‘min’}).round(1)
3.pandas可视化
4.pandas数据清洗之空数据处理
查看是否有空数据的两种方法:df.isnull().any() df.notnull().all()
产生空数据的两种方法:for i in range(50):
index=np.random.randint(100,200,size=1)[0]
col=df.columns
col=np.random.choice(col)
df.loc[index,col]=None
for i in range(20):
index=np.random.randint(100,200,size=1)[0]
col=df.columns
col=np.random.choice(col)
df.loc[index,col]=np.NAN
df.isnull().sum():求每一列空值的个数 df.isnull().sum().sum():求所有空值的个数
df.fillna(value=*):将空值用某个值填充
均值填充
df2.fillna(value=df2.mean().round(1))
中位数填充
df2.fillna(value=df2.median())
查看数据的前n行后n行,默认5行
df2.head();df2.tail()
统计列非空数据的个数:df2[‘Python’].count() 统计去重的个数:df2[‘Python’].unique()
统计众数:df2[‘Python’].value_counts()
zhongshu=[]
for col in df2.columns:
zhongshu.append(df2[col].value_counts().index[0])
zhongshu
s=Series(zhongshu,index=[df2.columns])
df2.fillna(s) 用众数填充空数据
df2.fillna(method=‘backfill’,axis=0) 前后填充 method参数的取值 : pad:用前一个非缺失值去填充该缺失值; backfill:用下一个非缺失值填充该缺失值
df2.dropna():删除空数据的行