首页 > 解决方案 > 通过在列标题中查找唯一值来更新 csv 行中的“单元格”?

问题描述

如果我有一个像这样的简单 csv:

name,age,color,team,completed
tim,34,green,5
jim,31,blue,6
kim,33,yellow,5

我想在python中(如果需要第三方模块,pandas很好)找到一个id,所以在这种情况下是名称(行),然后用YES更新'完成'下的值。名称将始终是唯一的。工作表的顺序可能并不总是相同,但标题名称总是相同的。

有没有办法在 name=="Jim" 和 'completed' 找到单元格坐标?

标签: pythonpython-3.xpandas

解决方案


晚上好,

导入 CSV

虽然我知道您可能只希望使用核心 Python 模块,但我建议使用 Pandas 来完成这项任务。

import pandas as pd

df = pd.read_csv('csv_file.csv')

条件变量赋值

一种方法是使用.loc[row, column]返回行df['name'] == 'jim'并将新列“完成”分配给“是”。列name不等于“jim”的行将被设置为缺失值。

df.loc[df['name'] == 'jim', 'completed'] = 'YES'

推荐阅读