我有一个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出现
答案 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']