现有数据两列,如下图:
然后我想删除a列中符合某正则表达式(如0002开头)的数据。该如何写?
添加:前面只是举例哈,因为不一定是XXXX开头,所以更希望是用re.正则表达式去匹配。谢谢楼下的回答。
另:现在遇到另个小问题,就是可能不止匹配一种,所以需要做个循环,代码如下:
for shield in shields: shield = shield.strip() print("屏蔽规则:", shield) data.loc[:, 'c'] = data['a'].map(lambda x: 1 if re.match(shield, x) else np.nan) data = data[data['c'].isnull()]
会报一个警告:C:ProgramDataAnaconda3libsite-packagespandascoreindexing.py:543: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pand...
self.obj[item] = s
具体来说,就是最后一句的时候更改了原本的data,直接覆盖data,这样不太规范,但我确实是需要用新的data不断覆盖。怎么写更好呢?
红糖糍粑
胡说叔叔
相关分类