You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python编辑情感分析CSV文件,将标签1行置于标签0行之前

解决方法:用Python调整CSV中情感标签的排序

没问题,要实现把所有标签为1的语句排在0前面,用Python有两种实用的方式,我给你一步步讲清楚:

方法一:用Pandas(推荐,处理CSV更高效)

Pandas是处理表格数据的神器,几行代码就能搞定:

  1. 首先确保你已经安装了pandas,如果没装的话,先运行这个命令:
pip install pandas
  1. 然后写代码:
import pandas as pd

# 读取CSV文件,指定列名匹配你的数据集结构
df = pd.read_csv("your_dataset.csv", header=0, names=["index", "sentiment", "sentiment-text"])

# 关键步骤:按sentiment列降序排序,让标签1的内容排在0前面
df_sorted = df.sort_values(by="sentiment", ascending=False)

# 保存排序后的文件,避免生成额外的索引列
df_sorted.to_csv("sorted_dataset.csv", index=False)

小提示

如果你的CSV表头和示例里的格式有错位(比如第一行是Sentiment ,SentimentText,后续行是0 , 0 "...."),可以跳过错误表头、自定义列名来读取:

df = pd.read_csv("your_dataset.csv", skiprows=1, names=["index", "sentiment", "sentiment-text"])

方法二:用Python内置CSV模块(无需额外安装库)

如果不想装第三方库,用Python自带的csv模块也能实现:

import csv

# 读取原文件,拆分标签为1和0的内容
with open("your_dataset.csv", "r", encoding="utf-8") as infile:
    reader = csv.reader(infile)
    header = next(reader)  # 提取表头
    rows_1 = []  # 存储标签为1的行
    rows_0 = []  # 存储标签为0的行
    for row in reader:
        # 注意去除空格后转整数判断标签值
        if int(row[1].strip()) == 1:
            rows_1.append(row)
        else:
            rows_0.append(row)

# 合并内容:表头 + 标签1的行 + 标签0的行
sorted_rows = [header] + rows_1 + rows_0

# 写入排序后的新文件
with open("sorted_dataset.csv", "w", encoding="utf-8", newline="") as outfile:
    writer = csv.writer(outfile)
    writer.writerows(sorted_rows)

特殊情况处理

如果你的文本内容里包含逗号(比如sentiment-text里有标点),用DictReader/DictWriter会更稳妥,避免拆分错误:

import csv

with open("your_dataset.csv", "r", encoding="utf-8") as infile:
    reader = csv.DictReader(infile)
    # 先收集标签1的行
    rows_1 = [row for row in reader if int(row["sentiment"].strip()) == 1]
    # 重置文件指针,再收集标签0的行
    infile.seek(0)
    next(reader)
    rows_0 = [row for row in reader if int(row["sentiment"].strip()) == 0]

with open("sorted_dataset.csv", "w", encoding="utf-8", newline="") as outfile:
    writer = csv.DictWriter(outfile, fieldnames=reader.fieldnames)
    writer.writeheader()
    writer.writerows(rows_1)
    writer.writerows(rows_0)

这样处理之后,你就能得到一个所有标签1的语句在前、标签0在后的CSV文件啦!

内容的提问来源于stack exchange,提问作者m.d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:36:56