读取csv文件的前两列,以逗号或制表符或空格分隔

import pandas as pd

# 文件路径
file_path = 'data.csv'

# 尝试读取文件,自动检测分隔符和编码
try:
    # 默认尝试逗号分隔符 (CSV 标准)
    data = pd.read_csv(file_path, sep=',', header=None, encoding='utf-8')
    print("逗号分隔")
except Exception as e:
    try:
        # 如果是制表符分隔的文件
        data = pd.read_csv(file_path, sep='\t', header=None, encoding='utf-8')
        print("制表符分隔")
    except Exception as e:
        try:
            # 如果是以空格分隔的文件
            data = pd.read_csv(file_path, delim_whitespace=True, header=None, encoding='utf-8')
            print("空格分隔")
        except Exception as e:
            print(f"无法读取文件,请检查文件格式或编码:{e}")
            exit()

# 检查数据是否至少有两列
if data.shape[1] < 2:
    print("文件中的列数不足两列,请检查文件内容。")
else:
    # 提取前两列
    ids = data.iloc[:, :2]
    
    # 打印结果
    print("前两列的ID:")
    print(ids)

    # 保存提取的结果到新文件
    ids.to_csv('extracted_ids.csv', index=False, header=False)
    print("已将前两列的ID保存到 'extracted_ids.csv' 文件中。")

简洁版:

import pandas as pd
file_path = 'data.csv'
try:
    data = pd.read_csv(file_path, sep=',', header=None, encoding='utf-8')
    print("逗号分隔")
except Exception as e:
    try:
        data = pd.read_csv(file_path, sep='\t', header=None, encoding='utf-8')
        print("制表符分隔")
    except Exception as e:
        try:
            data = pd.read_csv(file_path, delim_whitespace=True, header=None, encoding='utf-8')
            print("空格分隔")
        except Exception as e:
            print(f"无法读取文件,请检查文件格式或编码:{e}")
            exit()

if data.shape[1] < 2:
    print("文件中的列数不足两列,请检查文件内容。")
else:
    ids = data.iloc[:, :2]
    print("前两列的ID:")
    print(ids)
    ids.to_csv('extracted_ids.csv', index=False, header=False)
    print("已将前两列的ID保存到 'extracted_ids.csv' 文件中。")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值