python-3.x - 使用正则表达式检查单元格是否具有空值
问题描述
目的是过滤掉与 B 列中的正则表达式匹配的数据,而 A 列为空。
df = pd.read_csv('DATA.csv',sep=',',error_bad_lines=False)
fd = df[(df['B'].str.match('.*color\:*') |
df['B'].str.match('colorful\:*')) & df.A.str.match('^\s*$')]
使用此方法获得的输出匹配 B 列中单词“color”的所有实例,而不是完全匹配“color:”或“colorful:”。此外,此代码适用于 B 列的行,其中 A 列中的相应值不为空,而不是仅在 A 列值为空的行上运行。
解决方案
有两种方法:第一种是使用 .isnull() 方法:
df.A.isnull()
第二个是:
df.A.fillna('').str.contains('^$')
但是,正则表达式方法(第二种)不是最佳的
推荐阅读
- python - 如何使用按钮浏览下一个和上一个列表项?
- java - 给定数组表示 S 所需的最小数字计数
- python - Filter grouped pandas dataframe, keep all rows with minimum value in column
- javascript - 赛普拉斯:对意外访问/请求错误进行故障排除
- python - ValueError:形状 (None, 1) 和 (None, 101) 不兼容
- css - 名称修改导致选择器不选择
- javascript - 如何打开一个新的空白窗口并使新的空白窗口在 Javascript 中显示警报?
- r - 如何在所有组合中使用 SD 求平均值
- angular - Angular Service Worker 在预取资产时是否会阻止其他网络请求?
- python - 使用python将csv复制到postgres表