带有多个分隔符的 Pandas read_csv() 不起作用

问题描述 投票:0回答:1

我有一个 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+]'
pandas header delimiter read-csv
1个回答
0
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.