如何为Pandas DataFrame添加指定格式的字符串值列?
问题解决:Pandas新增格式化字符串列
你的代码问题在于直接将整个DF["reports"] Series转为字符串,这会把整个序列的文本表示(包含索引等冗余信息)拼接到结果里,而非逐个处理每个元素。以下是几种正确的实现方式:
方法1:矢量化字符串拼接(推荐,效率最高)
利用Pandas的矢量化操作,先将reports列转为字符串类型,再与固定前缀拼接:
import pandas as pd data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 'year': [2012, 2012, 2013, 2014, 2014], 'reports': [4, 24, 31, 2, 3]} DF = pd.DataFrame(data) # 新增key列 DF["key"] = "p1s" + DF["reports"].astype(str)
方法2:使用apply逐元素处理
通过apply对每个元素应用格式化逻辑,适合更复杂的字符串生成场景:
DF["key"] = DF["reports"].apply(lambda num: f"p1s{num}")
验证结果
执行后DF的内容会和你目标的DF2完全一致,key列将正确生成p1s4、p1s24等格式化字符串。
内容的提问来源于stack exchange,提问作者ilFonta
相关产品推荐
相关产品推荐

