python - 如何用相同的数组填充熊猫数据框
问题描述
尝试用数组填充熊猫数据框(比如说 np.zeros(200))。
如果我们想用一个值填充一个 pandas 数据框:
for col in df.columns:
df[col].values[:] = 2
它工作正常,但做同样的事情:
for col in df.columns:
df[col].values[:] = np.zeros(200)
不管用。
我不明白为什么会抛出错误(无法将输入数组 X 广播到形状 Y 中),因为我认为我正在单独填充数据帧的每个值,因此我认为形状无关紧要。
解决方案
如您所知,pandas 是建立在 numpy 之上的。当你这样做:
df[col].values[:] # This return a series
你得到一个系列,它就像一个 numpy 数组。
现在当你做
np.zeros(200)
你得到一个一维数组,但是你得到的错误告诉你你的 pandas 系列的长度与你的 numpy 数组的长度不同。
要做你想做的事,你最好这样做:
df.iloc[:,:] = 0
一般来说,尽量避免在数组上循环,大多数时候都有内置的方法可以完成这项工作。
推荐阅读
- reactjs - react 生成的打印网页
- git - Gitlab 12.X - 从预接收挂钩中的存储路径获取项目 ID
- git - Pull 不会更新子模块上的当前本地分支
- android - 设置 FMOD
- http - 将 cURL 请求转换为 Axios Post
- c# - XmlException: 遇到了意外的字符 '
- android - 即使我完成了应用程序,它也会继续返回到以前的活动
- physical-design - 蓝牙 5 PHY 层(适用于所有 4 种模式)
- python - 一个文件夹中的模块和有效的 PYTHONPATH 出现“未命名模块”错误
- npm - npm publish 将 .gitignore 重命名为 .npmignore