修复数据帧中超出CSV字段长度的额外字段

2024-09-28 03:20:48 发布

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

因此,我创建了一个新的csv,它基于\t分隔的其他csv进行连接。大多数行已成功映射到Excel中与其关联的单元格,但少数行超出了字段数

b'Skipping line 4046: expected 39 fields, saw 41\nSkipping line 7924: expected 39 fields, saw 40\n'

我想通过拆分数据并将其映射到列来修复所有数据都位于一个单元格中的行。最后一列可以保留该行的额外数据

第80行是要修复的“坏”行的一个示例:

Row 80 is an example of a "bad" row to be fixed

path = r'C:\Users\afsulta\.spyder-py3\ISG\master_reten_isg.csv'
files = os.listdir(os.getcwd())
csv_files = [f for f in files if f[-3:] == 'csv' and 'reten_isg' in f] # identify reten_isg files
master = pd.DataFrame()

for file in csv_files:
    df = pd.read_csv(file, skipinitialspace=True, sep='\t', header=0, encoding='latin-1', low_memory=False, delimiter='\t', error_bad_lines=False) # Ignores errors and corrupt data
    df.columns = df.columns.str.strip() # remove whitespace from columns
    df = df.applymap(lambda x: x.strip() if isinstance(x, str) else x) # strip leading and trailing whitespace from rows
    master = master.append(df, ignore_index=True) # concatenate each isg file to master

如果行的条目超过字段长度,我将如何编写代码将额外字段合并到最后一个单元格中?这是解决此问题的最佳方法吗?其他解决方案是什么?如果可能,最好的解决方案是什么


Tags: columnsandcsv数据inmasterfieldsdf
1条回答
网友
1楼 · 发布于 2024-09-28 03:20:48

如果我理解你的问题,你在一些文件中有几个额外的列,这是导致问题的原因。 你可以使用熊猫.concat。附件是我所说的一段话的图片

enter image description here

相关问题 更多 >

    热门问题