- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个名为 df_override 的数据框,其中包含“名称”、“字段”和“新值”列。此循环的目的是将 df 数据帧的“字段”列中的所有“名称”匹配替换为“新值”。 if 语句是看它是否是一个整数,然后用“id”列来匹配。
这个循环工作得很好,但是对于一个大的数据帧,它会变得令人难以置信的慢。我还有其他几个 for 循环,它们稍后在函数中运行。我想知道是否有其他方法可以执行针对运行时优化的此功能?
谢谢。
for index, row in df_override.iterrows():
if(not str(row["name"]).isdigit()):
df.loc[df["name"] == row["name"], row["Field"]] = row["New Value"]
else:
df.loc[df["id"] == row["name"], row["Field"]] = row["New Value"]
df_override
"name" "Field" "New Value"
apple color red
100 is_number True
df
"name" "id" "color" "is_number"
apple 300 blue False
apple 200 yellow False
banana 100 green False
df (after processing)
"name" "id" "color" "is_number"
apple 300 red False
apple 200 red False
banana 100 green True
最佳答案
将其更改为值而不是 iterrow 可以提高性能,但仍然很慢。
新循环
for field, name, value in zip(df_override["Field"].values,df_override["name"].values,df_override["New Value"].values):
if not str(name).isdigit():
df[field] = np.where(df["name"] == name, df[field], value)
else:
df[field] = np.where(df["id"] == name, df[field], value)
关于python - 如何最大限度地减少运行时间 : Value Replacement Iterations in Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56365636/
理论上,Cassandra 允许在宽行中最多包含 20 亿列。 我听说实际上高达 50.000 cols/50 MB 就可以了; 50.000-100.000 cols/100 MB 可以,但需要一些
我想知道是否有我可以使用的 Firestore 实时监听器的最大数量,以及每个监听器是否有开销? 这是针对 React Web 应用程序中的页面。我想监视集合中所有文档的更改,因此我可以选择使用多个文
我正试图找到一种更有效的方法来执行下面的任务。 函数被提供一些列表。我需要: 1) 找到列表的总和并将结果存储在另一个专门为此准备的列表中。 2) 移除输入列表的第一个元素 3) 找到新列表的总和并追
java中List的最大长度是多少?我的意思是列表中最多可以存储多少个元素? 最佳答案 Integer.MAX_VALUE 或者低的堆将是限制 关于java - 最大限度。 Java中List的长
我正在经历一个面试问题..并想出了需要找到的逻辑: Find an index j for an element a[j] larger than a[i] (with j arr[i]并为所有索引
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我可以在一个谷歌应用引擎后端启动多少个并行后台线程?我没有找到有关并行允许线程数量的任何信息。我正在为 GAE 使用 Java。 我按照文档中的说明开始一个新线程:[1] return ThreadM
我需要限制一些文本,使其永远不会超过 2 行 这是我目前所拥有的: Here is some long text, it just keeps on going and going and going
WHERE 子句中最多可以写多少个子查询?是依赖于RDBMS还是表的属性个数? 最佳答案 ANSI SQL 标准没有在 where 子句中指定子查询的最大数量。任何此类限制(如果存在)都是特定于 RD
我是一名优秀的程序员,十分优秀!