Python中如何将f-string格式化打印的输出内容插入DataFrame
解决方法
你原有代码存在两处语法错误,修正后即可实现需求:
错误点说明
- 变量定义时命名为
name,后续zip调用时误写为names,变量名不匹配 - 往列表
L追加内容时,格式化字符串未加f前缀,也没有用引号包裹,属于语法错误
完整可运行代码
import pandas as pd L = [] # 统一变量名为names,和后续调用保持一致 names = ['a', 'b', 'c'] dates = ['Jan', 'Feb', 'March'] event = ['Marriage', 'Office event', 'Birthday'] for a, b, c in zip(names, dates, event): format_content = f'I met {a} on {b} at this {c}' print(format_content) L.append(format_content) df = pd.DataFrame(L, columns=['string_values']) print(df)
可选优化写法(无需显式循环追加)
可以直接用列表推导式生成格式化后的列表,代码更简洁:
import pandas as pd names = ['a', 'b', 'c'] dates = ['Jan', 'Feb', 'March'] event = ['Marriage', 'Office event', 'Birthday'] # 列表推导式直接生成所有格式化字符串 format_list = [f'I met {a} on {b} at this {c}' for a, b, c in zip(names, dates, event)] df = pd.DataFrame(format_list, columns=['string_values']) print(df)
输出效果
逐行打印的格式化内容:
I met a on Jan at this Marriage I met b on Feb at this Office event I met c on March at this Birthday
生成的DataFrame:
string_values 0 I met a on Jan at this Marriage 1 I met b on Feb at this Office event 2 I met c on March at this Birthday
内容的提问来源于stack exchange,提问作者Cpt.Kitkat
相关产品推荐
相关产品推荐

