当只有一些数据帧具有逗号时,如何消除CSV中Pandas数据帧行末尾的逗号?

2024-10-02 14:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将csv文件转换为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 read csv with rows that have/not have comma at the end上找到的答案,我使用了以下代码:

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

这产生了以下输出: Pandas Dataframe Result I got

问题在于,例如在第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 JOHOR BAHRU,JOHOR.

但是我越来越

81100 JOHOR BAHRU


Tags: 文件csv数据标记dfreadhavepd
1条回答
网友
1楼 · 发布于 2024-10-02 14:28:30

以下方法可能就足够了?它首先使用标准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

相关问题 更多 >