运行Pandas处理CSV代码时Jupyter Notebook无输出且设备卡顿如何解决
问题解答
10000行26列的CSV文件体积极小,完全不会导致运行卡顿,你的问题由代码本身的错误和不规范写法导致:
- 核心问题是日期拼接代码的语法错误。你在
+号后直接换行,既没有加续行符\,也没有用括号包裹整个赋值表达式,Python解析器会认为表达式未完成,进入等待输入的状态,在Jupyter中就会一直显示[*],看起来就像运行卡住。 - 冗余的文件操作。你用
open()打开文件后没有手动关闭,存在资源泄漏问题,实际上pd.read_csv()支持直接传入文件路径字符串,不需要额外手动打开文件。 - 低效的日期处理写法。对整列调用
apply做字符串转换属于非必要操作,pandas内置的矢量操作效率远高于逐行执行的apply,即便你的数据量不大,也应该避免这种写法。
修正后的可运行代码
import pandas as pd file_name = r"ACCIDENTS_GU_BCN_2013.csv" # 直接传入文件路径即可,无需手动打开文件 data = pd.read_csv(file_name) # 用矢量方法拼接日期,替换低效的apply调用 data['Date'] = data['Dia de mes'].astype(str) + '-' + data['Mes de any'].astype(str) # 指定日期格式避免解析歧义,此处拼接规则为日-月,对应格式串%d-%m data['Date'] = pd.to_datetime(data['Date'], format='%d-%m') accidents = data.groupby('Date').size() print(accidents.mean())
如果修正代码后仍存在卡顿问题,重启Jupyter内核后重新运行即可,此前的错误状态可能会残留占用系统资源。
内容的提问来源于stack exchange,提问作者Circuit_Breaker0.7
相关产品推荐
相关产品推荐

