簡體   English   中英

如何使用 pandas 將度分秒 (DMS) 數據直接從 a.CSV 文件讀取到 dataframe 作為字符串?

[英]How to read Degree Minute Seconds (DMS) data directly from a .CSV file using pandas into a dataframe as strings?

如何使用 pandas 將度分秒 (DMS) 數據直接從 a.CSV 文件讀取到 dataframe 作為字符串? 例如:如果我有一個 csv 文件,其中包含一列 DMS 格式的數據,如何將其作為字符串讀取到 dataframe 以進行進一步計算?

76° 17' 51.2399" E
77° 26' 30.8322" E
76° 51' 29.7812" E
75° 45' 41.3540" E
76° 17' 51.2399" E

輸入文件示例: 在此處輸入鏈接描述

當我使用 pandas.read_csv('test.csv) #test.csv 是輸入文件時,我收到錯誤

Traceback (most recent call last):

  File "<ipython-input-90-2af7440e7795>", line 1, in <module>
    df = pd.read_csv('test.csv')

  File "C:\ProgramData\Anaconda3\envs\obspy\lib\site-packages\pandas\io\parsers.py", line 676, in parser_f
    return _read(filepath_or_buffer, kwds)

  File "C:\ProgramData\Anaconda3\envs\obspy\lib\site-packages\pandas\io\parsers.py", line 448, in _read
    parser = TextFileReader(fp_or_buf, **kwds)

  File "C:\ProgramData\Anaconda3\envs\obspy\lib\site-packages\pandas\io\parsers.py", line 880, in __init__
    self._make_engine(self.engine)

  File "C:\ProgramData\Anaconda3\envs\obspy\lib\site-packages\pandas\io\parsers.py", line 1114, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)

  File "C:\ProgramData\Anaconda3\envs\obspy\lib\site-packages\pandas\io\parsers.py", line 1891, in __init__
    self._reader = parsers.TextReader(src, **kwds)

  File "pandas\_libs\parsers.pyx", line 529, in pandas._libs.parsers.TextReader.__cinit__

  File "pandas\_libs\parsers.pyx", line 749, in pandas._libs.parsers.TextReader._get_header

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf8 in position 2: invalid start byte

CSV 文件:

id,string
1,76° 17' 51.2399" E
2,77° 26' 30.8322" E
3,76° 51' 29.7812" E
4,75° 45' 41.3540" E
5,76° 17' 51.2399" E

代碼:

df = pd.read_csv('test.csv')
print(df)

   id              string
0   1  76° 17' 51.2399" E
1   2  77° 26' 30.8322" E
2   3  76° 51' 29.7812" E
3   4  75° 45' 41.3540" E
4   5  76° 17' 51.2399" E

你能分享你的 CSV 文件的樣本嗎?

嘗試使用不同的編碼:

import pandas as pd
df = pd.read_csv('test1.csv', encoding='windows-1252')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM