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

如何将循环输出结果保存至CSV文件或DataFrame?

解决方案

方法1:用Pandas筛选生成新DataFrame(高效推荐)

不用写循环,直接用Pandas的布尔索引筛选目标数据,排序后添加序号列,既能得到可用的DataFrame,也能直接导出CSV:

# 按Polarity排序,同时筛选出Analysis为Positive的行
positive_df = tweets_df.sort_values(by=['Polarity'])[tweets_df['Analysis'] == 'Positive'].copy()
# 添加从1开始的序号列
positive_df['序号'] = range(1, len(positive_df)+1)
# 按需保留列(比如只留序号和翻译后的推文)
result_df = positive_df[['序号', 'transalted']]

# 保存为DataFrame:直接使用result_df即可
# 保存到CSV文件(index=False去掉默认索引,utf-8-sig避免中文乱码)
result_df.to_csv('positive_tweets.csv', index=False, encoding='utf-8-sig')

方法2:沿用原循环逻辑收集数据

如果一定要保留原循环的遍历逻辑,可以先把数据存到列表里,再转成DataFrame或直接写入CSV:

转成DataFrame再保存

import pandas as pd

j = 1
sortedDF = tweets_df.sort_values(by=['Polarity'])
positive_tweets = []

for i in range(sortedDF.shape[0]):
    # 用iloc[i]避免原索引不连续导致的取值错误
    if sortedDF['Analysis'].iloc[i] == 'Positive':
        positive_tweets.append({'序号': j, '翻译推文': sortedDF['transalted'].iloc[i]})
        j += 1

# 转成DataFrame
result_df = pd.DataFrame(positive_tweets)
# 导出CSV
result_df.to_csv('positive_tweets.csv', index=False, encoding='utf-8-sig')

直接写入CSV文件(无需DataFrame)

import csv

j = 1
sortedDF = tweets_df.sort_values(by=['Polarity'])

# 打开文件写入,newline=''避免空行,utf-8-sig适配中文
with open('positive_tweets.csv', 'w', newline='', encoding='utf-8-sig') as f:
    writer = csv.writer(f)
    writer.writerow(['序号', '翻译推文'])  # 写入表头
    for i in range(sortedDF.shape[0]):
        if sortedDF['Analysis'].iloc[i] == 'Positive':
            writer.writerow([j, sortedDF['transalted'].iloc[i]])
            j += 1

注意:原代码里的transalted疑似拼写错误,记得根据实际列名调整;用iloc[i]替代直接索引取值,能避免原DataFrame索引不连续导致的报错。

内容的提问来源于stack exchange,提问作者Izzah Salam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:35:35