zoukankan      html  css  js  c++  java
  • pandas 应用

    类似vlookup

    import pandas as pd
    
    file = pd.read_csv('NIN411PF.CSV', encoding='ANSI')
    
    a = pd.DataFrame({'PNUM95':['1609724175'],
                      'REFN95':['899270']
                      })
    #按2个条件查询
    file1 = pd.merge(file, a, on=['PNUM95','REFN95'])
    
    file1.to_csv('abc.csv')
    

      

    获取列标集, 行标集

    后面不能加()

    df.columns

    df.index

    增加一列

    import numpy as np
    import pandas as pd


    df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
    df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
    df3 = pd.DataFrame(np.ones((3,4))*2, columns=['a','b','c','d'])

    res = pd.concat([df1, df2, df3])
    res['e']=None
    print(res)

      

     增加2列

    import numpy as np
    import pandas as pd
    
    
    df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
    df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
    df3 = pd.DataFrame(np.ones((3,4))*2, columns=['a','b','c','d'])
    res = pd.concat([df1,df2,df3])
    res = pd.concat([res, pd.DataFrame(columns=['AAA', 'bbb'])])
    #要加sort,

      

    横向合并

    import numpy as np
    import pandas as pd
    
    
    df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
    df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
    df3 = pd.DataFrame(np.ones((4,4))*2, columns=['a','b','c','d'])
    
    
    res = pd.concat([df1,df2,df3], axis=1)   
    res = pd.concat([df1,df2,df3], axis=0, ignore_index=True)    #axis=0 纵向合并, index行标重新编写

      

    加3列

    import numpy as np
    import pandas as pd
    
    
    df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
    df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
    df3 = pd.DataFrame(np.ones((4,4))*2, columns=['a','b','c','d'])
    
    
    res = pd.concat([df1,df2,df3], axis=0, ignore_index=True)
    df = pd.concat([res, pd.DataFrame(columns=['x','y','z'])])
    
    print(df)
    

      

    字符转换

    import numpy as np
    import pandas as pd
    
    df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'])
    df2 = pd.DataFrame(np.ones((3,4))*1, columns=['a','b','c','d'])
    df3 = pd.DataFrame(np.ones((4,4))*2, columns=['a','b','c','d'])
    
    res = pd.concat([df1,df2,df3], axis=0, ignore_index=True)
    res = res.astype({'a':'str','b':'str'})  #a, b列转成字符,
    
    #res = res.astype(str) #整个数据表全转成字符
    print(res.a)
    

      

    分割一列为多列, 修改列标

    import numpy as np
    import pandas as pd
    
    res = pd.read_csv('Book1.csv')
    
    df1 = res.Item.str.split('-', expand=True)  # 按 - 分割, 加 expand=True
    df2 = pd.concat([res, df1], axis=1)
    df2.columns = ['a','b','c','d','e']  #重新设置列表
    
    df2.rename(columns={'e':'xx'}, inplace=True)  #修改制定列名, 加 inplace=True
    
    print(df2)
    

      

     修改行标列标

    >>>data.rename(index={'A':'D', 'B':'E', 'C':'F'}, columns={'a':'d', 'b':'e', 'c':'f'}, inplace = True)
    >>>data
    

      

    print(df2.head(0))  ##返回data的前几行数据,默认为前五行,需要前十行则data.head(10)
    print(df2.tail(1)) #返回data的后几行数据,默认为后五行,需要后十行则data.tail(10)

  • 相关阅读:
    什么是RUP
    oracle 导入导出
    jsp 标签
    java json 交互
    Spring MVC 学习过程遇到的问题
    Spring 与其他ORM 框架结合 作数据持久层解析 (转)
    Spring mvc 中快速获取request、reponse、session
    Spring 数据绑定
    spring mvc 请求对应控制器的解析策略配置
    spring 的几种注解
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10400451.html
Copyright © 2011-2022 走看看