首页 > 解决方案 > 用不同数量的字符替换行

问题描述

我有一列包含不同数量的字符的字符串。大多数行具有以下字符数:

xx.xx.xxxx xx-xx-xx

但也有行数不同,例如

xxx.xxx.xxxx
xxxx
xxxxxxxxxxxxxxx

我想xx.xx.xxxx xx-xx-xx用空值(例如NA)替换那些具有许多不同字符的列。我的方法是计算长度,xx.xx.xxxx xx-xx-xx然后过滤具有不同字符数的行:df[df['Char']!=len('xx.xx.xxxx xx-xx-xx')]. 但我还需要替换这些行的值。你能告诉我怎么做吗?

我的专栏看起来像

Char 
xx.xx.xxxx xx-xx-xx
xxx.xxx.xxxx
xxxx
xxxxxxxxxxxxxxx
xx.xx.xxxx xx-xx-xx
xx.xx.xxxx xx-xx-xx
xx.xx.xxxx xx-xx-xx
xx.xx.xxxx xx-xx-xx

我的预期输出是

Char 
xx.xx.xxxx xx-xx-xx
Na
NA
NA
xx.xx.xxxx xx-xx-xx
xx.xx.xxxx xx-xx-xx
xx.xx.xxxx xx-xx-xx
xx.xx.xxxx xx-xx-xx

标签: pythonpandas

解决方案


尝试loc

df.loc[df['Char'].str.len()!=len('xx.xx.xxxx xx-xx-xx'),'Char']=np.nan

推荐阅读