- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个大型 pandas 数据框 df1
,其中包含 col1
中的整个用户代理以及 col2
中包含的 Chrome 版本 (col2
是根据应用于 col1
的正则表达式模式生成的。
col1, col2
Mozilla/5.0 (X11; Linux x86_64) Chrome/14.0.2785.89 Safari/537.36, Chrome/14
Mozilla/5.0 (X11; Linux x86_64) Chrome/15.0.2743.98 Safari/537.36, Chrome/15
Mozilla/5.0 (X11; Linux x86_64) Chrome/22 Safari/537.36, None
如果 col2
中的 Chrome 版本号低于阈值,我想将 col1
中的 Chrome 版本号替换为高于阈值的随机整数。请注意,如果满足阈值,则 col2
为 None
。
我知道在这种情况下,我需要使用 axis = 1
进行 df.apply
以便同时访问两个列值。
但是,当我这样做时:
df1.loc[(df1.col2 is not None), 'col1'] =
df1.apply(lambda x: x['col1'].replace(x['col2'], randint(20, 60)), axis=1)
我产量:
TypeError: ('expected a string or other character buffer object', u'occurred at index 0')
如何替换 pandas 数据框列中由后面的列定义的变量子字符串?
对我不起作用的解决方案(原因):
Python Pandas removing substring using another column (太慢)
replace substring in pandas data frame column (不适用于可变子串)
最佳答案
完全不需要申请
。将 str.replace
与回调一起使用:
from random import randint
m = df.col2.notna()
df.loc[m, 'col1'] = df.loc[m, 'col1'].str.replace(
r'(?<=Chrome/).*?(?=\s)', lambda x: str(randint(20, 60))
)
df
col1 col2
0 Mozilla/5.0 (X11; Linux x86_64) Chrome/51 Safa... Chrome/14
1 Mozilla/5.0 (X11; Linux x86_64) Chrome/26 Safa... Chrome/15
2 Mozilla/5.0 (X11; Linux x86_64) Chrome/22 Safa... None
关于python - 如何替换 pandas 数据框列中由后面的列定义的变量子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49248658/
我到处寻找,但找不到禁用 Firefox Quantom 中“地址”字段搜索的方法。 添加搜索栏没问题,但这不会否定地址栏中的搜索。 我目前在 57.0.3。 最佳答案 您应该能够通过以下方式禁用地址
如何在新的 Firefox Quantum 开发控制台中模拟媒体类型“打印”? 试图以某种方式启用它并搜索文档但找不到任何提示! 最佳答案 在删除 GCLI(开发人员工具栏)后,该功能现在再次在最新的
我正在尝试在运行 Ubuntu quantal (12.10) 的服务器上安装 HTSeq(生物信息学工具),为此我需要安装一些软件包,所以我使用以下命令: sudo apt-get install
我需要实现 PSO(即带电 PSO 和量子 PSO)。我的问题是: 每个 PSO 使用什么速度更新策略(同步或异步粒子更新) 每个 PSO 使用什么社交网络拓扑(冯·诺依曼、环、星、轮、金字塔、四簇)
根据定义,门 1/sqrt(5) (I + 2iZ) 应作用于量子位 a|0> + b|1> 以将其转换为 1/sqrt (5) ((1+2i)a|0> + (1-2i)b|1>) 但每个 RUS 步
我是一名优秀的程序员,十分优秀!