Python 3.x 在数据帧中将巨大字符串转换为Nan值

Python 3.x 在数据帧中将巨大字符串转换为Nan值,python-3.x,pandas,Python 3.x,Pandas,有没有办法使用pandas将长字符串转换为NaN值?我试过这样直接的方法 df = df.replace('.....',np.nan) 但是它们太多了。您可以使用str.len()将它们设置为nan,让我们生成随机字符串并将它们存储在CSV中 np.random.seed(0) lens = np.random.choice(100, 100) letters = re.findall(r'[a-z]', ascii_lowercase) words = [''.join(np.random

有没有办法使用pandas将长字符串转换为
NaN
值?我试过这样直接的方法

df = df.replace('.....',np.nan)

但是它们太多了。

您可以使用
str.len()
将它们设置为
nan
,让我们生成随机字符串并将它们存储在CSV中

np.random.seed(0)
lens = np.random.choice(100, 100)
letters = re.findall(r'[a-z]', ascii_lowercase)
words = [''.join(np.random.choice(letters, i)) for i in lens]

df = pd.DataFrame(dict(words=words))
df.head()

# words
# 0 wmpctg
# 1 o
# 2 qpia
# 3 klnh
# 4 gnvpjgvl
让我们替换上面5个字符:

df.words[df.words.str.len() > 5] = np.nan
df.head()

#   words
# 0 NaN
# 1 o
# 2 qpia
# 3 klnh
# 4 NaN

你能告诉我什么长度对你来说太长了吗?
df[df.apply(lambda x:x.str.len()>MAX_len,axis=0)]=np.nan
。根据需要设置
MAX\u LEN