日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python合并多個csv文件

系統 2250 0

導入所需的包

            
              
                import
              
               os

              
                import
              
               pandas 
              
                as
              
               pd

              
                import
              
               glob
            
          

合并多個csv文件

            
              csv_list = glob.glob(
              
                '*.csv'
              
              ) 
              
                #查看同文件夾下的csv文件數
              
              
print(
              
                u'共發現%s個CSV文件'
              
              % len(csv_list))
print(
              
                u'正在處理............'
              
              )

              
                for
              
               i 
              
                in
              
               csv_list: 
              
                #循環讀取同文件夾下的csv文件
              
              
    fr = open(i,
              
                'rb'
              
              ).read()
    
              
                with
              
               open(
              
                'result.csv'
              
              ,
              
                'ab'
              
              ) 
              
                as
              
               f: 
              
                #將結果保存為result.csv
              
              
        f.write(fr)
print(
              
                u'合并完畢!'
              
              )
            
          
            
              共發現9個CSV文件
正在處理............
合并完畢!

            
          

去重函數

這個函數將重復的內容去掉,主要是去表頭。

            
              df = pd.read_csv(
              
                "result.csv"
              
              ,header=
              
                0
              
              )
            
          
            
              df.info()
            
          
            
              
                
RangeIndex: 659867 entries, 0 to 659866
Data columns (total 3 columns):
UrbanRuralCode    659867 non-null object
code              659867 non-null object
name              659867 non-null object
dtypes: object(3)
memory usage: 15.1+ MB

              
            
          
            
              IsDuplicated = df.duplicated()
            
          
            
              
                True
              
              
                in
              
               IsDuplicated
            
          
            
              True

            
          

這說明了這個DataFrame格式的數據含有重復項。

DataFrame.drop_duplicates函數的使用

            
              DataFrame.drop_duplicates(subset=
              
                None
              
              , keep=
              
                'first'
              
              , inplace=
              
                False
              
              )
            
          
  • subset : column label or sequence of labels, optional
    用來指定特定的列,默認所有列
  • keep : {‘first’, ‘last’, False}, default ‘first’
    刪除重復項并保留第一次出現的項
  • inplace : boolean, default False
    是直接在原來數據上修改還是保留一個副本
            
              datalist = df.drop_duplicates(keep = 
              
                False
              
              )
            
          
            
              datalist.info()
            
          
            
              
                
Int64Index: 659859 entries, 0 to 659866
Data columns (total 3 columns):
UrbanRuralCode    659859 non-null object
code              659859 non-null object
name              659859 non-null object
dtypes: object(3)
memory usage: 20.1+ MB

              
            
          

排序函數

            
              datalist_sorted = datalist.sort_values(by = [
              
                'code'
              
              ]) 
              
                #按1列進行升序排序
              
            
          

結果寫入csv文件

            
              datalist_sorted.to_csv(
              
                "village_all.csv"
              
              , sep = 
              
                ','
              
              , header = 
              
                True
              
              ,index = 
              
                False
              
              )
            
          

問題

Python讀取文件問題

錯誤信息

            
              
                "UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence"
              
            
          

解決方案

            
              fr = open(i,
              
                'r'
              
              ).read() 改為 fr = open(i,
              
                'rb'
              
              ).read()

              
                with
              
               open(
              
                'result.csv'
              
              ,
              
                'a'
              
              ) 
              
                as
              
               f: 改為 
              
                with
              
               open(
              
                'result.csv'
              
              ,
              
                'ab'
              
              ) 
              
                as
              
               f:
            
          

重復值問題

這里我合并了9個csv文件,檢查最后合并結果發現,里面還有 一個列名 。這是因為9個為文件,其中8個的列名被認為是DataFrame的值,第1個的列名依舊為列名,然后再去重的過程中,8個相同值被保留了1個,所以這會導致最后的csv文件多了 一個列名

解決方案

            
              IsDuplicated = df.duplicated() 改為 IsDuplicated = df.duplicated(keep = 
              
                False
              
              ) 
              
                #重復數據全部去除
              
            
          

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 安阳市| 乳源| 体育| 荥阳市| 榕江县| 郑州市| 防城港市| 佛山市| 五台县| 南木林县| 神农架林区| 德兴市| 阿勒泰市| 罗山县| 民和| 和林格尔县| 南郑县| 株洲市| 邛崃市| 房山区| 淮北市| 巫溪县| 株洲县| 乳山市| 安溪县| 平远县| 金华市| 昌乐县| 红河县| 子长县| 营山县| 北流市| 栖霞市| 和林格尔县| 河北省| 百色市| 方山县| 江孜县| 阳朔县| 融水| 建昌县|