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')
我有 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')