You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas的pd.DataFrame()导致CPU占用过高求助

解决Pandas生成DataFrame时CPU占满的问题

嘿,作为刚接触Pandas的新手,遇到这种卡顿问题太正常了!我来帮你拆解一下问题出在哪,以及怎么解决:

问题根源:不必要的转置 + 错误的DataFrame构造方式

首先,Series.transpose()对你的操作完全没意义——因为Series是一维数据结构,转置之后它还是原来的样子,不会有任何结构上的变化,这一步纯粹是做了无用功。

更关键的是你创建DataFrame的写法:pd.DataFrame(x,y,z),这完全搞错了Pandas构造DataFrame的参数逻辑。Pandas的pd.DataFrame()第一个参数是数据主体,第二个参数index是行索引,第三个参数columns是列名。你把三个Series分别传进去,Pandas会尝试把x(Date列)当作数据,y(Fatalities)当作行索引,z(Injuries)当作列名,这会触发Pandas的广播机制,试图生成一个规模巨大的DataFrame(行数等于Fatalities的长度,列数等于Injuries的长度),直接把你的CPU和内存拉满,导致电脑卡顿。

正确的做法:直接提取所需列构造DataFrame

你想要的其实就是把Date、Fatalities、Injuries这三列组合成新的DataFrame对吧?根本不需要转置,直接用下面的代码就可以高效完成:

# 最简单的方式:直接从原数据中提取指定列
plotting_data = data[["Date", "Fatalities", "Injuries"]]

# 如果你的需求是把Date作为行索引(类似"转置"的结构调整),可以这样写:
plotting_data = data.set_index("Date")[["Fatalities", "Injuries"]]

额外小建议

  1. 处理数据前先看一眼数据规模:用print(data.shape)看看原数据有多少行多少列,避免不小心生成远超预期的数据集。
  2. 尽量避免对Series做无意义的操作,比如transpose(),不仅浪费资源,还容易混淆逻辑。
  3. 如果数据量确实很大,Mac上可以打开「活动监视器」看看内存占用——如果内存不够,系统会频繁使用虚拟内存(Swap),这也会导致CPU占用飙升。

内容的提问来源于stack exchange,提问作者oba2311

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:35:17