- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
来自reindex docs :
Conform DataFrame to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index. A new object is produced unless the new index is equivalent to the current one and copy=False.
因此,我认为我可以通过设置 copy=False
就地 (!) 来获得重新排序的 Dataframe
。然而,我似乎确实得到了一份副本,需要再次将其分配给原始对象。如果可以避免的话,我不想将其重新分配 ( the reason comes from this other question )。
这就是我正在做的:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(5, 5))
df.columns = [ 'a', 'b', 'c', 'd', 'e' ]
df.head()
出局:
a b c d e
0 0.234296 0.011235 0.664617 0.983243 0.177639
1 0.378308 0.659315 0.949093 0.872945 0.383024
2 0.976728 0.419274 0.993282 0.668539 0.970228
3 0.322936 0.555642 0.862659 0.134570 0.675897
4 0.167638 0.578831 0.141339 0.232592 0.976057
Reindex 为我提供了正确的输出,但我需要将其分配回原始对象,这是我想通过使用 copy=False
来避免的:
df.reindex( columns=['e', 'd', 'c', 'b', 'a'], copy=False )
该行之后的期望输出是:
e d c b a
0 0.177639 0.983243 0.664617 0.011235 0.234296
1 0.383024 0.872945 0.949093 0.659315 0.378308
2 0.970228 0.668539 0.993282 0.419274 0.976728
3 0.675897 0.134570 0.862659 0.555642 0.322936
4 0.976057 0.232592 0.141339 0.578831 0.167638
为什么 copy=False
不能正常工作?
有没有可能做到这一点?
使用 python 3.5.3、pandas 0.23.3
最佳答案
reindex
是一种结构性变化,而不是装饰性或变革性的变化。因此,总是返回一个副本,因为操作不能就地完成(它需要为底层数组等分配新内存)。这意味着您必须将结果分配回去,别无选择。
df = df.reindex(['e', 'd', 'c', 'b', 'a'], axis=1)
另见关于 GH21598 的讨论.
copy=False
实际上有用的一个极端情况是用于重新索引 df
的索引与它已有的索引相同。您可以通过比较 id 来检查:
id(df)
# 4839372504
id(df.reindex(df.index, copy=False)) # same object returned
# 4839372504
id(df.reindex(df.index, copy=True)) # new object created - ids are different
# 4839371608
关于python - 为什么 pandas reindex() 不就地运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56462088/
我已经在我的 PostgreSQL 数据库上启动了 REINDEX。在 GUI 中可以看到它处理了一些表,然后停止响应。看起来它仍在工作,即使在两个小时后也是如此。 GUI 没有响应,其最后一行显示:
我已经浏览了几次 _reindex api 文档,但不知道是否可行。将文档从源索引复制到目标索引后,是否也可以删除源文档? 这是我正在调用的当前 _reindex api 调用主体: { "sou
我做不到 重新索引 在 magento 2 .在谷歌之后,我得到了我们可以用 shell 命令重新索引的解决方案 php dev/shell/indexer.php reindexall 但它给出了错
我正在进行一项重新索引 Elasticsearch 索引的任务,以防发生任何更改。我可以找到2种方法来实现此目的,但是除非我缺少某些内容,否则它们对我来说都是相同的。 我正在从服务B的Postgres
我最近决定更改我的映射/设置,为此,我不得不重新索引所有文档(5M),但是,只重新索引了5m中的20个文档。 我用相同的拱形创建了一个新的索引,但是更改了许多映射/设置。 (将关键字类型更改为文本类型
因此,我们处于需要将Elasticsearch文档从一个索引重新索引到另一索引的情况。我们正在为此使用reindex API。尽管有时文档已经存在于目标索引中。设置version_type: "ext
我已经设置了目标索引 new_dest_index在运行 _reindex 之前操作,包括设置映射、分片计数、副本等。 我运行了下面的 POST 命令来从 source_index 复制所有文件至 n
我正在尝试使用reindex API进行Elasticsearch https://www.elastic.co/guide/en/elasticsearch/reference/current/do
我尝试了该主题的几个示例,但没有结果。我正在读取一个 DataFrame,如下所示: Code,Counts 10006,5 10011,2 10012,26 10013,20 10014,17 10
我正在尝试使用以下行重新编制索引: POST _reindex { "source": { "index": "poi_201705" }, "dest": { "inde
这是我正在使用的代码: 将 pandas 导入为 pd test3 = pd.Series([1,2,3], index = ['a','b','c']) test3 = test3.reindex(
我在创建表时创建索引,然后将数据插入表中。 我认为当表中的数据已经被索引时,即使我删除或插入新数据也不需要运行 REINDEX。 这是正确的吗?或者每次,我都需要运行一个 REINDEX。 如果我需要
使用 Magento 1.6 我不得不对我的 catlog 进行一些批量更改,因此做了一个完整的产品导出,进行了更改,然后导入了修改后的文件。 之后有一些索引需要更新,除了“产品属性”索引之外的所有索
我可以搜索显示此错误消息“原因”的建议,但不能搜索如何解决它 - 每次我尝试通过连接 2 个现有列中的字符串值来向 pandas 数据框添加新列时都会遇到此问题。 例如: wind['timestam
包 x.x.x.repository.search 没有成功生成。我该如何解决它。 源代码是here 我只是运行 npm install -g generator-jhipster-elasticse
集成某些产品后,我在重新索引 Magento CMS 时遇到问题。 这是 shell 重新索引的日志 /usr/home/sinusi/public_html/_duplicateshop/shel
我的目标是重新索引具有 1000 万个分片的索引,以更改字段映射以促进重要术语分析。 我的问题是我在使用 NEST 库执行重新索引时遇到问题,并且文档(非常)有限。如果可能的话,我需要一个使用中的例子
假设我有两个数据框: import string import pandas as pd d = {'one': pd.Series(range(26), index = list(string.as
我正在尝试相对于索引的第二级重新索引数据框。我有一个数据框,其中索引的第一级是用户 ID,第二级是日期。例如: pd.DataFrame({ 'id': 3*['A'] + 5*['B'] + 4*[
我正在尝试使用 pandas reindex 函数填充我的时间序列数据中缺失的行。 我的数据如下: 100,2007,239,4,29.588,-30.851,-999.0,-999.0,-999.
我是一名优秀的程序员,十分优秀!