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

如何在Python中基于CSV的年龄、SES列,为空白列写入条件值?

嘿,我来帮你解决这个CSV数据处理的问题!其实用Python实现这个需求并不难,我给你两种常用的方案,一种是用更简洁高效的pandas库,另一种是用Python原生的csv模块,你可以根据自己的情况选择~

方案一:用pandas处理(推荐)

pandas是Python处理表格数据的神器,代码简洁且效率高,非常适合这类需求。

步骤1:安装pandas(如果还没装的话)

打开终端运行:

pip install pandas

步骤2:编写处理代码

import pandas as pd

# 1. 读取CSV文件
# 把'your_file.csv'替换成你的实际文件名
df = pd.read_csv('your_file.csv')

# 2. 根据条件给vitality class赋值
# 示例:当年龄等于65且SES为"高"时,赋值1;其他情况保留原空白或设为0(可按需修改)
# 如果你不想覆盖已有非空白的vitality class值,用下面的逻辑
df['vitality class'] = df.apply(
    lambda row: 1 if (row['age'] == 65 and row['SES'] == '高') else row['vitality class'],
    axis=1
)

# 或者用更高效的布尔索引方式(处理大数据时更快)
# 先给空白的vitality class初始化默认值(比如0),不想初始化可以跳过这步
df['vitality class'] = df['vitality class'].fillna(0)
# 满足条件的行赋值为1
df.loc[(df['age'] == 65) & (df['SES'] == '高'), 'vitality class'] = 1

# 3. 将结果写回CSV
# index=False避免把pandas的索引列写入文件
df.to_csv('your_file.csv', index=False)
# 不想覆盖原文件的话,改成新文件名比如'updated_your_file.csv'
方案二:用Python原生csv模块(无需额外安装库)

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

import csv

# 打开原文件和输出文件
with open('your_file.csv', 'r', newline='', encoding='utf-8') as infile, \
     open('updated_your_file.csv', 'w', newline='', encoding='utf-8') as outfile:
    
    # 用DictReader读取,每一行会变成字典,方便按列名取值
    reader = csv.DictReader(infile)
    # 获取所有列名,保证输出文件的列和原文件一致
    fieldnames = reader.fieldnames
    
    # 初始化DictWriter,用于写入处理后的行
    writer = csv.DictWriter(outfile, fieldnames=fieldnames)
    writer.writeheader()
    
    # 遍历每一行处理
    for row in reader:
        # 注意:CSV读出来的内容默认是字符串,age是数字的话要转成int再比较
        age = int(row['age'])
        ses = row['SES']
        
        # 条件判断:年龄65且SES为"高"时赋值1,否则保留原内容
        if age == 65 and ses == '高':
            row['vitality class'] = '1'
        
        # 写入处理后的行
        writer.writerow(row)

# 确认结果正确后,若要覆盖原文件,可使用shutil模块(需先导入)
# import shutil
# shutil.move('updated_your_file.csv', 'your_file.csv')
一些注意事项
  • 数据类型问题:CSV文件读取后,数字类的列(比如age)默认是字符串,比较时记得转成int/float,避免出现'65' == 65不成立的情况。
  • 数据安全:建议先写入新文件,确认结果正确后再替换原文件,防止误操作丢失数据。
  • 多条件扩展:之后如果要加更多规则(比如年龄>60且SES中等赋值2),只需要在判断语句里添加elif逻辑,或者扩展布尔索引即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:44:54