<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          讀CSV和狗血的分隔符問題,附解決方法!

          共 1136字,需瀏覽 3分鐘

           ·

          2021-11-12 01:10

          你好,我是zhenguo

          今天跟大家分享一個遇到的挺狗血的問題,讀入csv文件關(guān)于分隔符的問題。

          1

          使用pandas讀入csv文件后,發(fā)現(xiàn)列沒分割開,所以將sep參數(shù)調(diào)整為\t,發(fā)現(xiàn)還是沒分割開,再試空格,再試\s+,即各種空白字符組合,有幾例能分隔開,但是還有些列無法分割開。

          左思右想,不得其解。那就去查查csv文件有沒有自動解析出分隔符的工具,其實這種工具并不難做,把每行的分隔符規(guī)律找一遍,按照不同概率給出不同的分隔符可能。

          網(wǎng)上并沒有找到,一般網(wǎng)上沒有找到答案的問題,主要分兩類,要么這個問題的關(guān)聯(lián)領(lǐng)域是極其小眾的,要么這個問題本不是問題,可能是因為犯傻導致的極其低級錯誤而出現(xiàn)的問題。

          很明顯讀個csv列無法分割不屬于小眾問題,所以應(yīng)該是犯傻導致。

          果不其然,等我再三觀察、在群里討論哈佛哥提醒了我一句,才意識到讀入文件沒有分割,也就是行1列的數(shù)據(jù)格式,所以問題出在讀入文件上。

          2

          作為延伸,我想說下csv文件一個被人詬病的問題,正是由于分割符導致。

          如下文件a.csv,分隔符是逗號,你注意看Hi,pythoner單元格,它的取值中含有一個逗號

          等我使用pandas讀入此文件時,會發(fā)生什么:

          import?pandas?as?pd?
          pd.__version__??#?'1.2.4'
          pd.read_csv('a.csv',?index_col=False)

          讀入后,Hi,pythoner單元格的取值被截斷為Hi

          如果多個單元格存在多于1個逗號,因為列無法對其還會拋異常,為此read_csv還提供一個參數(shù)error_bad_lines,專門丟棄這種含有多個逗號的行,這種錯誤在大數(shù)據(jù)量時尤其容易出現(xiàn),為了第一時間讀入數(shù)據(jù)往往將error_bad_lines設(shè)置為False,即丟棄這種多逗號的行。

          如果csv文件的分隔符是\t或其他,也同樣面臨一樣的問題,如果分隔符恰好出現(xiàn)在單元格中,這種錯誤是不可避免的。

          3

          如果你的數(shù)據(jù)恰好又大量出現(xiàn)了分隔符的行,這就需要引起重視了。

          為此比較保險的一種做法是,替換單元格中出現(xiàn)的csv文件的分隔符為其他符號,如分隔符為逗號,替換單元格的逗號為空格;如為\t,替換單元格的\t為逗號。

          這樣經(jīng)過一遍替換處理后,就不會再出現(xiàn)數(shù)據(jù)缺失、有些行被過濾的問題。



          我正在視頻號精心打造從零學Python的短視頻,目前觀眾已突破1萬1千人,已經(jīng)播出到第80集,敬請關(guān)注我-程序員zhenguo,這是第80集:

          點擊觀看

          瀏覽 72
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99免费高清视频 | 日韩18禁网站 | 菠萝成人视频 | 日韩欧美三级片在线观看 | 成人在线精品视频 |