这是我的csv文件内容
1.1.1.Top Header
Attribute,Field Description,Table,Column, Filter
Quarter,Fiscal Current Quarter,tableA,col1,A=B
Blah, Blah, Blah, Blah, Blah
Blah, Blah, Blah, Blah, Blah
Blah, Blah, Blah, Blah, Blah
1.1.2.Next Level
Attribute,Field Description,Table,Column, Filter
Blah, Blah, Blah, Blah, Blah
我使用python来提取标题信息,列名,如属性,字段描述,表,列,过滤器,最后是数据。但并没有像预期的那样工作。
import pandas as pd
# Load the CSV file
df = pd.read_csv('dd.csv')
# Fill NaN values with "NA"
df = df.fillna("NA")
# Find the row indexes of the header rows
header_indexes = df[df.iloc[:,0].str.match(r'^(\d+\.)+\d+\..*')].index.tolist()
# Check if there are any headers and data rows
if header_indexes and header_indexes[-1] < len(df) - 1:
# Extract header names and remove the numeric values
header_names = [df.iloc[i,0].split('.')[1:] for i in header_indexes]
header_names = [', '.join([h.strip() for h in header]) for header in header_names]
# Extract the column names
column_names = df.iloc[header_indexes[-1]+1,:].tolist()
print("Header Names:", header_names)
print("Column Names:", column_names)
else:
print("No headers or data rows found in the CSV file.")
我想标题名称为“顶部标题”,“下一级”列名称为属性,字段描述,表,列,过滤器
最后是数据。不知怎么的,Pandas看不懂第一行。
2条答案
按热度按时间zzlelutf1#
我不会直接使用Pandas来处理不同部分的缠结。你可以尝试类似下面的方法(假设你希望头文件名在一个列表中,所有数据在一个dataframe中):
样品结果:
header_names
:['Top Header', 'Next Level']
df
:4nkexdtk2#
“不知怎么的,Pandas看不懂第一行。”
必须指定列名列表。如果没有传递名称,则行为与header=0相同,并且从文件的第一行推断列名。
你可以尝试例如: