- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有下面这行代码
end_df['Soma Internet'] = end_df.iloc[:,end_df.columns.get_level_values(1) == 'Internet'].drop('site',axis=1).sum(axis=1)
基本上,它通过特定的 1 级列过滤我的多索引 df。删除一些不需要的列。并计算所有其他项的总和。
我浏览了一些文档和其他问题。但我不太明白是什么原因导致警告,我也很想重写这段代码,所以我去掉了它。
最佳答案
让我们尝试一个示例(为简单起见,没有数据):
# Column MultiIndex.
idx = pd.MultiIndex(levels=[['Col1', 'Col2', 'Col3'], ['subcol1', 'subcol2']],
codes=[[2, 1, 0], [0, 1, 1]])
df = pd.DataFrame(columns=range(len(idx)))
df.columns = idx
print(df)
Col3 Col2 Col1
subcol1 subcol2 subcol2
很明显,MultiIndex
列没有排序。我们可以检查它:
print(df.columns.is_monotonic)
False
这很重要,因为如果索引已排序,Pandas 会更快地执行索引查找和其他操作,因为它可以使用假定排序顺序的操作并且速度更快。实际上,如果我们尝试删除一列:
df.drop('Col1', axis=1)
PerformanceWarning: dropping on a non-lexsorted multi-index without a level parameter may impact performance.
df.drop('Col1', axis=1)
相反,如果我们在删除之前对索引进行排序,警告就会消失:
print(df.sort_index(axis=1))
# Index is now sorted in lexical order.
Col1 Col2 Col3
subcol2 subcol2 subcol1
# No warning here.
df.sort_index(axis=1).drop('Col1', axis=1)
编辑(见评论):正如警告所暗示的,当我们没有指定要删除列的级别时会发生这种情况。这是因为要删除该列,pandas 必须遍历整个未排序的索引(发生 here )。通过指定它,我们不需要这样的遍历:
# Also no warning.
df.drop('Col1', axis=1, level=0)
但是,一般来说,这个问题更多地与行索引有关,因为列多索引通常要小得多。但绝对要记住更大的索引和数据框。事实上,这与按索引切片和查找特别相关。在这些情况下,您希望对索引进行排序以获得更好的性能。
关于python - PerformanceWarning : dropping on a non-lexsorted multi-index without a level parameter may impact performance. 如何摆脱它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72278311/
如何在 Linux x64 上以侵入性和影响最小的方式获取已运行进程的所有线程堆栈跟踪? 到目前为止我想到的事情: gdb - 恐怕它会使进程变慢太多,而且持续时间太长; strace+ - 不知道它
在impact.js框架中,Weltmeister关卡编辑器生成的关卡对象的结构是什么?我能找到的最多信息是 ig.game.loadlevel 的文档,但是非常有限。特别是layer的data属性的
我需要捕获 SIGABRT、SIGSEGV 和 SIGILL,以便在我无法控制的事情失败并且程序需要退出时向用户显示正确的严重错误消息。 但是我的程序做了很多实时计算,所以性能很重要。 signal(
引入 ES6 template strings由反引号 ` 分隔。 在哪些情况下用反引号替换字符串周围的单引号 ' 或双引号 " 会产生不同的结果,否则是不安全的? 作为操作的一部分执行代码内现有反引
我想将 Upcoming 文本推到底部,而 7 pax 文本保留在顶部。我对该列使用了 verticalArrangement = Arrangement.SpaceBetween,但它没有任何效果,
我一直在努力使用 Impact 字体大约一年了。 它应该是一种网络安全字体,但事实并非如此。 当我使用标准的“Impact”时,它在移动平台上不起作用。如果我使用特定的字体@font-face,就不可
我有一个多线程Step,配置了一个带有48个线程corePoolSize的线程池(这是一台大机器),但是我没有配置节流限制。 我想知道是否因为这个原因一直在使用机器。 Spring Batch文档说节
简单问题: 是PropTypes增加交付的 bundle 大小并且仅在开发模式下显示吗? 最佳答案 这取决于您如何构建项目。如果您使用webpack并将process.env.NODE_ENV设置为生
这个问题已经有答案了: Performance difference between Java 8 lambdas and anonymous inner classes (2 个回答) Does a
假设我们有以下代码: @SpringBootApplication @ConditionalOnProperty(value = "scheduling.enable") @EnableSchedul
我正在尝试使用 Impact.ttf。它内置于 OSX 中,但在 xcode 上的自定义字体中看不到它。所以我将它包含在我的项目中,如屏幕所示并使用 UIFont *font1 = [UIFont f
在组件树中向下或向上有条件地渲染弹出窗口(例如通过 {shouldShowLoading && } 加载微调器弹出窗口)是否更有意义?那么以下两个选项中哪一个是有利的 - 或者在性能上没有差异? 在组
如何在不影响任何日期的情况下,从 oracle 数据库的 datetime 列中删除时间并将其保存为默认时间 00:00:00。 例如:我有一个数据类型为 datetime 的列,并且还有数千条记录,
我正在重构我的一个 Controller 以使其成为一项服务,我想知道不将整个服务容器注入(inject)我的 Controller 是否会对性能产生影响。 这样效率更高吗: innova.path.
如果我在 AsyncTask 的 doInBackground 方法中启动一个新线程,从性能的角度来看是否可以?我写了一个从服务器下载文件的小程序。该方法在 doInBackground 中运行。现在
所以,我们正在尝试运行一个屏幕报告,这不会更改任何存储的数据。但是,它很复杂,因此需要遍历几个(TEMPORARY*)表。 它从已复制的事件表中提取数据。 从 中获取“合格”记录时令人讨厌的一点 te
我正在构建一个实用程序,用于从手机中卸载不太重要的包以释放空间和资源。 它适用于 root 的 android 手机。 该实用程序将删除几个不需要的语言包,如阿拉伯语, 中文, 丹麦语等 对于用户来说
我想使用 matplotlib 颜色映射的 set_bad 参数为 nan 值分配特定颜色。我创建了一个颜色图: from matplotlib.colors import ListedColorma
我是 HTML 5 和 Impact 的新手。我将开始使用 HTML 5、Javascript 进行编程。我听说 Impact 是最好的 Javascript 2D 引擎之一,所以我考虑购买它并尝试一
是否可以暂时忘记身份验证、jwt 登录内容和安全性并稍后再实现? 我选择java作为我的游戏的restful服务后端,但是我很难使用mysql数据库、jwt身份验证和spring boot设置一个简单
我是一名优秀的程序员,十分优秀!