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)

  • 相关阅读:
    函数/方法的活动对象
    Function 详解(一)
    两栏自适应布局延展到多栏自适应布局
    height百分比以及高度自适应问题
    clearfix为什么用display:table,而不用display:block
    Nodejs写的搬家工具知识分享
    终于把自己多年前的百度文章搬到博客园了
    用Razor来生成模板 using razor for template
    一个request,但是controller被执行了多次的问题
    33个好用的图片轮显 jquery图片轮显
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10400451.html
Copyright © 2011-2022 走看看