regex 如何使用python对dataframe中的特定列应用tokenize?

vwoqyblh  于 2023-08-08  发布在  Python
关注(0)|答案(2)|浏览(106)

我有一个有三列的数据框。数据框中的一列需要应用标记化。我得到TypeError:应为字符串或类似字节的对象,得到的是'float'

import pandas as pd
import os
df = pd.read_csv(r"D:\......PATH\sample_regex.xlsx")    
from nltk.tokenize import RegexpTokenizer
regexp = RegexpTokenizer('\w+')
df['CDnew'] = df['CD'].apply(regexp.tokenize)

字符串
我可以要求解决这个问题吗?
先谢了。
数据

我正试图从第三列标记的话,并保持标记的话在一个新的列。但是我得到了 TypeError:应为字符串或类似字节的对象,但得到的是'float'

mutmk8jj

mutmk8jj1#

您遇到的错误是由于DataFrame的“CD”列中存在NaN(非数字)值。
检查列是否具有多个数据类型。

print(df['CD'].apply(type).value_counts())

字符串
这将显示“CD”列中存在的每个数据类型的计数。
您可以在应用标记器之前使用astype(str)方法将所有非字符串值转换为字符串。

df['CD'] = df['CD'].astype(str)  # Convert all values to strings
regexp = RegexpTokenizer('\w+')
df['CDnew'] = df['CD'].apply(regexp.tokenize)

xn1cxnb4

xn1cxnb42#

它是这样工作的:

df.loc[:,'CDnew'] = df.loc[:,'CD'].apply(regexp.tokenize)

字符串

相关问题