为了账号安全,请及时绑定邮箱和手机立即绑定

python f'string 在 pd.Series.map 函数中不起作用

python f'string 在 pd.Series.map 函数中不起作用

qq_遁去的一_1 2021-06-07 17:01:44
我有一个pd系列,s = pd.Series([1, 2, 3, np.nan])当我做,s.map('this is a string {}'.format)[out]0    this is a string 1.01    this is a string 2.02    this is a string 3.03    this is a string nan   如何使用格式化字符串获得相同的结果?s.map(f'this is a string {?}') ?
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

使用 lambda 函数{x}:


print (s.map(lambda x: f'this is a string {x}'))

#alternative with different value

#print (s.map(lambda val: f'this is a string {val}'))

0    this is a string 1.0

1    this is a string 2.0

2    this is a string 3.0

3    this is a string nan

dtype: object


查看完整回答
反对 回复 2021-06-15
?
守候你守候我

TA贡献1802条经验 获得超10个赞

没有mapapply+ 的解决方案是可能的lambda。您可以将列表直接分配给系列。列表pd.Series.apply推导式通常更有效,因为它不是矢量化的:

df = pd.DataFrame({'s': pd.Series([1, 2, 3, np.nan])})


df['t'] = [f'this is a string {i}' for i in df['s']]


print(df)


     s                     t

0  1.0  this is a string 1.0

1  2.0  this is a string 2.0

2  3.0  this is a string 3.0

3  NaN  this is a string nan


查看完整回答
反对 回复 2021-06-15
  • 2 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信