如何遍历pandas dataframe将指定列值赋值到对应格式的字符串中
实现方法
方法1:使用iterrows逐行遍历(适合小数据量,逻辑直观)
import pandas as pd # 构造示例df,实际使用时替换为pd.read_csv("你的csv文件路径")即可 df = pd.DataFrame({ "badge_id": [123, 456, 789, 231], "case_id": [1690, 1717, 1389, 1540], "case_type": ["type0", "type0", "type0", "type3"], "description": ["subtype4", "subtype2", "subtype2", "subtype1"], "short_des": ["xxx", "yyy", "aaa", "bbb"] }) # 存储最终生成的所有字符串 result = [] # 逐行遍历df for _, row in df.iterrows(): # 注意f字符串里要输出字面量大括号,需要写两层{{}}做转义 template_str = f"{{'opened_for': {{ value: **'{row['badge_id']}'**}},'short_description': {{ value : **'{row['short_des']}'**}}, 'case_id': {{ value : **{row['case_id']}**}}}}" result.append(template_str) # 打印输出结果 for item in result: print(item)
方法2:使用apply批量生成(适合大数据量,执行效率更高)
def build_template(row): return f"{{'opened_for': {{ value: **'{row['badge_id']}'**}},'short_description': {{ value : **'{row['short_des']}'**}}, 'case_id': {{ value : **{row['case_id']}**}}}}" # 对每行执行自定义函数,直接得到所有结果 result_series = df.apply(build_template, axis=1) # 可按需转成列表 result_list = result_series.tolist()
注意事项
- 如果需要给case_id也加上单引号,只需要把模板里
**{row['case_id']}**修改为**'{row['case_id']}'**即可 - 所有生成的字符串都会存在
result/result_list变量中,可直接用于后续业务逻辑
内容的提问来源于stack exchange,提问作者PwrSerg
相关产品推荐
相关产品推荐

