机器学习入门(三)Pandas基本操作

axis的0与1:

  • 检验空值, axis = 0 表示列方向上进行行合并
  • 删除和插入, axis = 0表示在列方向上删除一行;

  • 数据之间的计算, 比如说求每行的均值, axis = 0表示逐行计算均值
  • 默认值是0

pandas基本数据操作

  1. 删除

    df1.drop(labels=['周杰伦','陈奕迅'],axis=1,inplace=True)#inplace表示对原数据进行修改
    notnull().all(axis= )
    isnull ().any(axis=0)#纵向合并,将所有的行合并
    df1.dropna(axis=0)#可以选择过滤的是行还是列, axis = 0表示逐行 , 1表示逐列 ,默认是0
  2. 填充覆盖

    • 值填充

      df1.fillna(value=xxx)
    • 向前填充

      df1.fillna(method='ffill',axis=0) #axis=0表示跨行,也就是上面填充下面
      #向后填充
      df1.fillna(method='bfill',axis=1) #axis=1表示跨列,也就是右边填充左边
      #先向前填充,但有些数据可能不能向前填充,那么它会保持不变,这时需要再向后填充一次
      df1.fillna(method='ffill',axis=0).fillna(method='bfill',axis=0)
  3. 级联(拼接)

    pd.concat((df1,df2),axis=0,join='inner')   #内连接,不包含NaN
  4. 合并(数据库两张表格的合并)

    pd.merge(df1,df2,on='name')#按名字进行合并,默认是按共有的列标签作为合并条件,如果有多个共有列标签,则会将多个列标签共同作为合并条件,除非指定
    pd.merge(df1,df2,how='outer')#默认内连接,也就是两张表中不同时出现的会被删除掉,这里设置成外连接,还有'left'和'right',分别表示只包含左表或只包含右表的内容
    pd.merge(df1,df2,left_on='name',right_on='mingzi')#两张表没有共有标签,但name和mingzi表示同一个含义,此时可以这样指定

猜你喜欢

转载自www.cnblogs.com/yimeisuren/p/12424798.html