python 数据框列搜索拉丁文

python dataframe column search latin

我有 5 个不同的数据框。它们的列和列类型都不同。这些 dfs 是从 excel 创建的。我有一个脚本可以读取 df 并将其推送到 MySQL。 一些 excel 有拉丁字符。如果它们在 df 中的任何位置包含拉丁字符,我想设置 sys.setdefaultencoding('latin-1')。 这就是我所拥有的,但它不起作用。我该如何解决这个问题?

这是我的错误: ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

                for column in df:
                  if df[column].astype(str).str.contains(ur'[^\x00-\x7F\x80-\xFF\u0100-\u017F\u0180-\u024F\u1E00-\u1EFF]'):
                    sys.setdefaultencoding('latin-1')

您在整个列上调用了函数 contains。结果是一个列大小的布尔值数组。 if 需要一个布尔表达式。

我预计您需要将 any 归约运算符添加到您的表达式中。

if any(df[column] ... ):
    sys.setdefaultencoding('latin-1')