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

我有一个pd系列,


s = pd.Series([1, 2, 3, np.nan])

当我做,


s.map('this is a string {}'.format)

[out]

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   

如何使用格式化字符串获得相同的结果?


s.map(f'this is a string {?}') ?


qq_遁去的一_1
浏览 208回答 2
2回答

FFIVE

使用 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.01    this is a string 2.02    this is a string 3.03    this is a string nandtype: object

守候你守候我

没有map/ apply+ 的解决方案是可能的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                     t0  1.0  this is a string 1.01  2.0  this is a string 2.02  3.0  this is a string 3.03  NaN  this is a string nan
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python