我有5个不同的数据框。它们的列和列类型都不同。这些df是从Excel创建的。我有一个脚本读取df并将其推送到MySQL。 某些特长具有拉丁字符。我想设置sys.setdefaultencoding('latin-1')如果它们在df中的任何地方都包含拉丁字符。 这是我所拥有的,它不起作用。我该如何解决?
这是我的错误: ValueError:系列的真值不明确。使用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')
答案 0 :(得分:0)
您在整列上调用了一个函数contains
。结果是一列大小的布尔值数组。 if
需要一个布尔表达式。
我希望您需要在表达式中添加any
归约运算符。
if any(df[column] ... ):
sys.setdefaultencoding('latin-1')