我想在pandas dataframe的上述列中的每个值的开头添加一个字符串(优雅地).

df.ix[(df['col'] != False), 'col'] = 'str'+df[(df['col'] != False), 'col']

这似乎是一件非常不雅观的事情——你知道其他方法吗(这可能也会将字符添加到列为0或NaN的行中)?

如果这还不清楚,我想转而:

    col 
1     a
2     0

进入:

       col 
1     stra
2     str0

推荐答案

df['col'] = 'str' + df['col'].astype(str)

例子:

>>> df = pd.DataFrame({'col':['a',0]})
>>> df
  col
0   a
1   0
>>> df['col'] = 'str' + df['col'].astype(str)
>>> df
    col
0  stra
1  str0

Python相关问答推荐

Asyncio与队列的多处理通信-仅运行一个协程

单击Cookie横幅错误并在Selenium中启用搜索栏

FastAPI:使用APIRouter路由子模块功能

如何才能将每个组比上一组增加N %?

Polars Dataframe:如何按组删除交替行?

使用图片生成PDF Django rest框架

如何使用stride_tricks.as_strided逆转NumPy数组

有什么方法可以避免使用许多if陈述

从DataFrame.apply创建DataFrame

Python中的负前瞻性regex遇到麻烦

有条件地采样我的大型DF的最有效方法

如何在Deliveryter笔记本中从同步上下文正确地安排和等待Delivercio代码中的结果?

梯度下降:简化要素集的运行时间比原始要素集长

关于Python异步编程的问题和使用await/await def关键字

形状弃用警告与组合多边形和多边形如何解决

Pandas Loc Select 到NaN和值列表

合并帧,但不按合并键排序

可以bcrypts AES—256 GCM加密损坏ZIP文件吗?

如何使regex代码只适用于空的目标单元格

Python全局变量递归得到不同的结果