Python Pandas错误:pandas只能使用.str访问器和string值

我有一个pandas脚本,我得到一个Excel工作表,并把它放在一个pandas数据框,然后我在这个数据框中查找一个特定的单词,然后我创build一个1和0的df掩码,在那里我find了单词。

我没有Excel表格的特定格式,所以我得到所有的信息,我find了这个词,并创build一个与此行产生的错误的面具:

mask = np.column_stack([df[col].str.find(word) for col in df.columns.tolist()]).astype(int) 

这行有时会产生这个错误:

pandas只能使用带string值的.str访问器,它使用pandas中的np.object_ dtype

任何想法为什么以及如何使其工作?

谢谢

您可以使用lambda函数的applymap将dataframe转换为掩码。 如果df是inputdataframe,则可以执行以下操作将所有字段转换为1如果stringword在其中),否则为0

 mask = df.applymap(lambda x: 1 if word in str(x) else 0)