我有一个 csv 文件,我正在尝试将其读取为 pandas 数据框。我需要跳过前 19 行评论。我的标题位于第 20 行,数据位于后续行。唯一的问题是标题行以“#”开头,它将标题移动。其余数据用空格分隔。由于某种原因,执行 sep=r'#|\s+' 会向数据集引入两个“未命名”列。
原始数据输入(显示行号):
01|# 条评论...
02|# 条评论...
03|# 条评论...
.
.
.
19|# 条评论...
20|# 标题1 标题2 标题3
21|数据1 数据2 数据3
代码:
df = pd.read_csv(df_path, skiprows=19, sep=r'#|\s+', engine='python', encoding='utf-8')
输出df:
未命名:0 | 未命名:1 | 标题1 |
---|---|---|
数据1 | 数据2 | 数据3 |
所需输出df:
标题1 | 标题2 | 标题3 |
---|---|---|
数据1 | 数据2 | 数据3 |
如何解决标题行中额外的“#”而不出现此问题?我也尝试过使用
sep=r'[#|\s+]'
import pandas as pd
# Define the path to your CSV file
df_path = 'your_file.csv'
# Read the CSV file, skipping the first 19 rows as comments
df = pd.read_csv(df_path, skiprows=19, sep='\s+', engine='python', encoding='utf-8', comment='#')
# Rename the columns by splitting the first row
df.columns = df.columns.str.split().str[-1]
# Print the DataFrame
print(df)