【发布时间】:2017-06-01 05:35:21
【问题描述】:
我有一个 pandas 脚本,我在其中获取了一个 excel 表并将其放在 pandas 数据框中,然后我在此数据框中查找特定单词,然后创建 df 的 1 和 0 的掩码,我在其中找到这个词。
我没有特定格式的 Excel 工作表,所以我按原样获取所有信息,然后查找单词并使用此行创建一个掩码,这会产生错误:
mask = np.column_stack([df[col].str.find(word) for col in df.columns.tolist()]).astype(int)
这一行有时会产生这个错误:
pandas 只能使用带有字符串值的 .str 访问器,它使用 熊猫中的 np.object_ dtype
知道为什么以及如何使它起作用吗?
谢谢
【问题讨论】:
-
在您的列表理解中尝试使用
df.select_dtypes([np.object]).columns.tolist()而不是df.columns.tolist()。现在,您正在选择所有dtypes的列,这些列很可能是混合的。您需要将其限制为仅字符串,str.find()函数才能正常工作。
标签: python excel pandas dataframe