join
  • pandas
  • 2014-03-07 84 views 1 likes 
    1

    我试图从一个pandas dataframe加入到另一个列中,使用其日期作为索引。但是,我的代码生成TypeError。请有人可以解释为什么这个错误正在产生,我能做些什么来解决它?尝试按索引加入熊猫数据框时出现TypeError

    在此先感谢。

    """Balsjo THg, MeHg, TOC | Q and flux data 2005-2010""" 
    
    path2 = 'C:\\Users\\Google Drive\\SLU\\Thesis\\Data\\BalsjSite4.xls' 
    df2 = pd.io.excel.read_excel(path2, 'THg', header=0, parse_dates=[1], dayfirst=True, index_col='Date') 
    df3 = pd.io.excel.read_excel(path2, 'MeHg', header=0, parse_dates=[1], dayfirst=True, index_col='Date') 
    df4 = pd.io.excel.read_excel(path2, 'TOC', header=0, parse_dates=[1], dayfirst=True, index_col='Date') 
    print list(df2.columns.values) 
    print list(df3.columns.values) 
    print list(df4.columns.values) 
    cln_df2 = df2[['Q (mm/d)', 'THg (ng/L)', 'Flux']] 
    cln_df22 = cln_df2.append[df3[['MeHg (ng/L)']]] 
    print cln_df22.head() 
    
    --------------------------------------------------------------------------- 
    TypeError         Traceback (most recent call last) 
    <ipython-input-5-4f468a92d5ce> in <module>() 
        9 print list(df4.columns.values) 
    10 cln_df2 = df2[['Q (mm/d)', 'THg (ng/L)', 'Flux']] 
    ---> 11 cln_df22 = cln_df2.append[df3[['MeHg (ng/L)']]] 
    12 print cln_df22.head() 
    
    TypeError: 'instancemethod' object has no attribute '__getitem__' 
    
    [u'Q (mm/d)', u'THg (ng/L)', u'RIM THg', u'Flux', u'Rim Flux', u'Error', 'Unnamed: 7', 'Unnamed: 8', 'Unnamed: 9', 'Unnamed: 10', 'Unnamed: 11', 'Unnamed: 12', 'Unnamed: 13', 'Unnamed: 14', 'Unnamed: 15', u'z', u'ae(bz)', u'c0e(fz)'] 
    [u'Q (mm/d)', u'MeHg (ng/L)', u'RIM MeHg', u'Flux', u'Rim Flux', u'Error', 'Unnamed: 7', 'Unnamed: 8', 'Unnamed: 9', 'Unnamed: 10', 'Unnamed: 11', 'Unnamed: 12', 'Unnamed: 13', 'Unnamed: 14', 'Unnamed: 15', u'z', u'ae(bz)', u'c0e(fz)'] 
    [u'Q (mm/d)', u'TOC (mg/l)', u'RIM TOC', u'Flux', u'Rim Flux', u'Error', 'Unnamed: 7', 'Unnamed: 8', 'Unnamed: 9', 'Unnamed: 10', 'Unnamed: 11', 'Unnamed: 12', 'Unnamed: 13', 'Unnamed: 14', 'Unnamed: 15', u'z', u'ae(bz)', u'c0e(fz)'] 
    
    +0

    我认为你要做到这一点'cln_df22 = cln_df2.append(DF3 [ '甲基汞(纳克/升)']) ',你试图从append属性的数据框中访问不存在的项目 – EdChum

    +0

    @EdChum好的,谢谢你的解决方案和解释。 – Bprodz

    回答

    0

    我想你应该不是这样做:

    cln_df22 = cln_df2.append(df3[['MeHg (ng/L)']]) 
             ^    ^
    you need to use brackets/parentheses instead of square brackets 
    
    相关问题