Value must be either numerical or a string containing a wildcard
时间: 2024-04-13 16:25:13 浏览: 32
这个错误提示表明在读取`.xlsx`文件时,`pandas`库要求列的值要么是数值类型,要么是包含通配符的字符串。
一种可能的原因是,你的`.xlsx`文件中包含了一些不符合要求的值。请确保你的数据列中只包含数值或符合通配符要求的字符串。
另外,你也可以尝试使用`pandas.read_excel()`函数的一些参数来处理这个错误。例如,你可以使用`dtype`参数指定每一列的数据类型,或者使用`converters`参数来指定特定列的转换函数。
如果你能提供更多关于你的数据和代码的细节,我可以为你提供更具体的帮助。
相关问题
ValueError: Value must be either numerical or a string containing a wildcard
这个错误通常表示您提供的值不是数字或不是包含通配符的字符串。请检查您的输入并确保它符合所需的格式。通配符是一种特殊字符,用于表示任何字符或任何数量的字符。在Python中,通配符通常使用`*`表示。
如果您正在使用类似于SQL的查询语言,则可以使用通配符来搜索包含特定字符串的值。例如,使用`LIKE`运算符和`%`通配符,可以搜索包含特定字符串的所有值。以下是一个示例代码,它使用`LIKE`运算符和`%`通配符来执行类似于SQL的模糊查询:
```
# 获取所有查询条件
date = self.date_entry.get()
name = self.line_entry1.get()
name1 = self.line_entry2.get()
name2 = self.line_entry3.get()
# 查询数据
ws = openpyxl.load_workbook(output_path2).active
rows = ws.iter_rows(min_row=1, values_only=True)
records = []
header = next(rows)
for row in rows:
# 模糊匹配名称
if (not date or row[2].strftime('%Y/%m/%d').find(date) != -1) and \
(not name or name in row[5]) and \
(not name1 or name1 in row[8]) and \
(not name2 or name2 in row[6]):
records.append(row)
```
在上面的代码中,我们使用`find()`方法来搜索日期字符串是否包含用户输入的子字符串,并使用`in`运算符来搜索其他列中的字符串是否包含用户输入的子字符串。请注意,在模糊匹配名称时,我们使用了`in`运算符而不是`==`运算符,这允许我们搜索包含特定字符串的所有值。
# 查询窗口 class QueryWindow: def __init__(self, master): self.master = master self.master.title("查詢窗口") self.master.state('zoomed') # 窗口最大化 # 创建一个新的样式 style = ttk.Style() style.configure("Custom.TFrame", background="lightcyan") # 创建底部的工具栏 self.bottom_frame = ttk.Frame(master, height=20, style="Custom.TFrame") self.bottom_frame.pack(side='bottom', fill='x') # 创建左侧面板 self.panel_left = tk.Frame(master, width=130, bg='lightcyan') self.panel_left.pack(side=tk.LEFT, fill=tk.Y) # 创建右侧面板 self.panel_right = tk.Frame(master, width=20, bg='lightcyan') self.panel_right.pack(side=tk.RIGHT, fill=tk.Y) # 创建工具栏 self.toolbar = tk.Frame(master,width=20, bg='white') self.toolbar.pack(side=tk.BOTTOM, fill=tk.X) # 创建 Frame 来包含标签和下拉框 input_frame = tk.Frame(self.panel_left, padx=0, pady=5) input_frame.pack(side=tk.TOP, fill=tk.X) # 创建标签和下拉框日期 ri = datetime.datetime.now().strftime('%Y/%m/%d') self.date_label = tk.Label(input_frame, text="點檢日期:") self.date_label.grid(row=0, column=0, padx=5, pady=5, sticky=tk.W) self.date_entry = tk.ttk.Combobox(input_frame, values=[ri]) self.date_entry.grid(row=0, column=1, padx=5, pady=5, sticky=tk.W) self.date_entry.current(0) # 创建标签和下拉框线别 self.line_label1 = tk.Label(input_frame, text="线别:") self.line_label1.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W) self.line_entry1 = tk.ttk.Combobox(input_frame, values=["PA綫", "PB綫", "PC綫", "PD綫", "NF綫", "NE綫", "ND綫", "NC綫", "NB綫", "NA綫"]) self.line_entry1.grid(row=1, column=1, padx=5, pady=5, sticky=tk.W) self.line_entry1.current(0)ValueError: Value must be either numerical or a string containing a wildcard
这个错误通常发生在你尝试将一个无效的值赋给 `current` 属性。请检查你在 `self.line_entry1` 中设置的 `values` 值是否正确。如果 `values` 中包含非数字和通配符的字符串,则 `current` 属性必须设置为 `values` 中的一个索引。如果 `values` 中包含数字和通配符的字符串,则可以将 `current` 属性设置为一个字符串,例如 `current("*")`,表示选择所有值。请更正你的 `values` 和 `current` 属性,以保证它们的值是有效的。例如:
```
# 创建标签和下拉框线别
self.line_label1 = tk.Label(input_frame, text="线别:")
self.line_label1.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W)
self.line_entry1 = tk.ttk.Combobox(input_frame,
values=["PA綫", "PB綫", "PC綫", "PD綫", "NF綫", "NE綫", "ND綫", "NC綫",
"NB綫", "NA綫"])
self.line_entry1.grid(row=1, column=1, padx=5, pady=5, sticky=tk.W)
self.line_entry1.current(0) # 设置默认选项
```
这里,我们将 `values` 设置为一个包含字符串的列表,并将 `current` 属性设置为 `0`,表示默认选择列表中的第一项。这样,你的代码应该能够正常运行了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)