python - 匹配字符串的Pythonic方式在数据框上创建列?
问题描述
如何添加/创建一个返回 1 的列,如果列中的值包含 < 或 <<,如果不包含,则为 0,基于列 df['value']?
df['INDICATOR'] = [1 if x.str.contains("<|<<") else 0 for x in df['value']]
我上面的尝试返回了一个属性错误:'str object has no attrbute 'str'
解决方案
然后创建掩码Series.astype
,Series.view
或numpy.where
转换True/False
为1/0
:
m = df['value'].str.contains("<|<<")
#simplify mask - if contains << then contain <
m = df['value'].str.contains("<")
df['INDICATOR'] = m.astype(int)
df['INDICATOR'] = m.view('i1')
df['INDICATOR'] = np.where(m, 1, 0)
推荐阅读
- bash - 为什么 bash 后增量运算符设置非零结果代码?
- laravel-8 - request()->validate() 在 n laravel 8 左右第二次不起作用
- excel - 分块和超越 Laravel
- python - Matplotlib 反转图例顺序(X 轴),但保持图形方向相同
- javascript - 第 4:13 行:'React' 未定义 no-undef
- class - 定义三个类,Polygon、Rectangle 和 Square。Polygon 将是 Triangle 和 Square 的父类
- slack - 我想在松弛消息中显示“显示更多”
- flutter - Flutter:如何配置/构建使用单个私有“核心”库/包的多个应用程序的最佳实践是什么?
- c++ - C++向量在传递给函数后被清空
- java - 一个进程的 RAM 内存使用量显示为 21g,而同一进程的堆内存使用量为 4gb。剩余的内存要去哪里?