python pandas在列名中读取csv文件错误

时间:2016-07-19 21:21:08

标签: python csv pandas dataframe

我有一个csv文件,前两行的数据为:

Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim Hostsystem As SupportSystem
    Dim SF As SendFile

    Try

        SF = db.SendFiles.FirstOrDefault(Function(SFile) SFile.Name = "DailySummary")
        Hostsystem = db.SupportSystems.FirstOrDefault(Function(x) x.Name = SF.SupportSystemName)


        For i = 1 To 1

            Dim TaskSendFile As Task(Of String) = Task(Of String).Factory.StartNew(Function()
                                                                                       Throw New ApplicationException("App Error")
                                                                                       Return ""
                                                                                   End Function)
            Await TaskSendFile

        Next

        MessageBox.Show("All Done")

    Catch ex As Exception
        MessageBox.Show("Error : " + ex.Message)
    Finally
        Try
            **'The below check is what is throwing error.** 
            If Not IsNothing(SF) Then
            End If
        Catch ex As Exception
            MessageBox.Show("Unexpected Error in the finally block. " + ex.StackTrace)
        End Try
    End Try
End Sub

当我使用pandas数据框读取它时:

NewDateTime ResourceName    
9/18/12 1:00    ANACACHO_ANA    
9/18/12 2:00    ANACACHO_ANA    

我得到了

df = pd.read_csv(r'MyFile.csv')

然而,当我尝试

df1.columns
Index([u'NewDateTime', u'ResourceName', dtype='object')

我收到错误:

df1['NewDateTime']

另外我的pycharm解释器上的df1 [' NewDateTime']有一点像df1 [' -NewDateTime'],但是当我把它粘贴在这里时,破折号没有' t出现

1 个答案:

答案 0 :(得分:2)

您的CSV文件似乎有BOM (Byte Order Mark) signature,因此请尝试使用'utf-8-sig''utf-16'或其他编码与BOM 进行解析:

df = pd.read_csv(r'MyFile.csv', encoding='utf-8-sig')

这是一个小型演示:

In [18]: pd.read_csv(fn).columns
Out[18]: Index([u'?NewDateTime', u'ResourceName'], dtype='object')

In [19]: pd.read_csv(fn, encoding='utf-8-sig').columns
Out[19]: Index([u'NewDateTime', u'ResourceName'], dtype='object')

在我的iPython终端中,BOM签名在?中显示为u'?NewDateTime' - 在您的情况下,它是一个破折号:df1['-NewDateTime']

相关问题