簡體   English   中英

我如何消除 CSV for Pandas Dataframe 中行尾的逗號,而只有一些逗號?

[英]How can I eliminate comma at end of lines in CSV for Pandas Dataframe when only some have them?

我正在嘗試將 csv 文件轉換為 pandas df。 數據屬於以下類型(SROIE 數據集)(這只是整個文件的一小部分):

76,50,323,50,323,84,76,84,TAN WOON YANN
110,165,315,165,315,188,110,188,INDAH GIFT & HOME DECO
126,191,297,191,297,214,126,214,27,JALAN DEDAP 13,
129,218,287,218,287,236,129,236,TAMAN JOHOR JAYA,
100,243,324,243,324,261,100,261,81100 JOHOR BAHRU,JOHOR.
70,268,201,268,201,285,70,285,TEL:07-3507405

問題僅存在於最后一列,它沒有顯示我需要的全部文本信息。 根據我在pandas dataframe 上找到的答案,讀取 csv 的行末尾有/沒有逗號,我使用了以下代碼:

pd.read_csv(r'D:\E_Drive\everything else\C2\SROIE2019\0325updated.task1train(626p)\X00016469619.txt',usecols=np.arange(0,9), header=None)

這給出了以下 output: 我得到的熊貓數據框結果

問題是,例如在第 3 行(在 pd 數據框中標記為 2 的行)即

126,191,297,191,297,214,126,214,27,JALAN DEDAP 13,

我需要

27, JALAN DEDAP 13,

但我得到

27

只要。 第 5 行(在 pd 數據框中標記為 4 的行)中的問題也是如此:

100,243,324,243,324,261,100,261,81100 JOHOR BAHRU,JOHOR.

我需要

81100 新山,柔佛.

但我得到

81100 新山

以下方法可能就足夠了嗎? 它首先使用標准的 CSV 讀取器讀取行,並在將其加載到 pandas 之前重新連接結束列。

import pandas as pd
import csv

with open('X00016469619.txt', newline='') as f_input:
    csv_input = csv.reader(f_input)
    data = [row[:8] + [', '.join(row[8:])] for row in csv_input]
        
df = pd.DataFrame(data)
print(df)

給你:

     0    1    2    3    4    5    6    7                          8
0   76   50  323   50  323   84   76   84              TAN WOON YANN
1  110  165  315  165  315  188  110  188     INDAH GIFT & HOME DECO
2  126  191  297  191  297  214  126  214       27, JALAN DEDAP 13, 
3  129  218  287  218  287  236  129  236         TAMAN JOHOR JAYA, 
4  100  243  324  243  324  261  100  261  81100 JOHOR BAHRU, JOHOR.
5   70  268  201  268  201  285   70  285             TEL:07-3507405

暫無
暫無

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

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