自动标题识别(Pandas/CSV)



我正在做一个解析csv文件的项目。在当前状态下,用户必须从已知列名中输入一个唯一的字符串来设置标题行,既用于解析列选择,也用于填充列以保留字段。

我的目标是从用户端删除该步骤,并自动化该过程,而不管标题行实际位于何处。我对此做了一个基本的、硬编码的解决方案。。。但我想知道如何才能实现一种更Python化/自动化的方式,而不依赖于硬编码的值和逻辑。

以下是我的测试数据帧的最低版本:

B>类型活动
0 ACDEF
1 这只是一个占位符,作用就像填充了第一个单元格
2
3 这也是一个占位符
5
7 文本 布尔
8 A。Lorem ipsum悲哀坐amet,consectetur adipiscing elit t1
9 C.Nulla quis nisi vitae ante eleifend porta。D.Donec tempor felis nec lectus ultricies fringilla 错误

在玩了一整天代码之后,我想我找到了一个有效的解决方案。如果有人愿意在他们的一端为我测试它,我将感谢您的反馈!

import os, sys
import pandas as pd
import numpy as np
docs = os.listdir() #folder path where files are saved
os.chdir()
for file in docs:
rownum=0
rowindx=0
cols=[]
if file.endswith('csv'):
df = pd.read_csv(file, header = None)

for row in df.iterrows():
rownum+=1
rowindx=rownum-1
col_count=0
i=0
while i < len(df.columns):
if df.isnull().loc[rowindx, df.columns[i]]:
col_count=col_count
else:
col_count+=1
i+=1

if col_count < len(df.columns):
cols.append(f'row {rownum} NOPE')
elif col_count == len(df.columns):
cols.append(f'row matched')
match = 'row matched'
hdr_pos = cols.index(match)
print(f'Header Index: {hdr_pos} n Row: {hdr_pos+1}')

对于目标文件夹中的每个csv,将打印:
标题索引:[Index#]
行:[Index#+1]

相关内容

  • 没有找到相关文章

最新更新