因此,我创建了一个新的csv,它基于\t分隔的其他csv进行连接。大多数行已成功映射到Excel中与其关联的单元格,但少数行超出了字段数
b'Skipping line 4046: expected 39 fields, saw 41\nSkipping line 7924: expected 39 fields, saw 40\n'
我想通过拆分数据并将其映射到列来修复所有数据都位于一个单元格中的行。最后一列可以保留该行的额外数据
第80行是要修复的“坏”行的一个示例:
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
如果行的条目超过字段长度,我将如何编写代码将额外字段合并到最后一个单元格中?这是解决此问题的最佳方法吗?其他解决方案是什么?如果可能,最好的解决方案是什么
如果我理解你的问题,你在一些文件中有几个额外的列,这是导致问题的原因。 你可以使用熊猫.concat。附件是我所说的一段话的图片
相关问题 更多 >
编程相关推荐