gpt4 book ai didi

pandas - 使用groupby在大型数据帧上有效地进行Fillna(正向填充)?

转载 作者:行者123 更新时间:2023-12-03 15:30:14 25 4
gpt4 key购买 nike

在大型数据框中转发填充信息的最有效方法是什么?

我合并了每日文件中约600万行x 50列的维度数据。我删除了重复项,现在有大约200,000行唯一数据,这些数据可以跟踪其中一个维度发生的任何更改。

不幸的是,一些原始数据被弄乱了并且具有空值。如何有效地使用以前的值填充空数据?

id       start_date   end_date    is_current  location  dimensions...
xyz987 2016-03-11 2016-04-02 Expired CA lots_of_stuff
xyz987 2016-04-03 2016-04-21 Expired NaN lots_of_stuff
xyz987 2016-04-22 NaN Current CA lots_of_stuff

这就是数据的基本形状。问题是某些尺寸不应为空白(这是原始数据中的错误)。一个示例是,对于先前的行,该位置已为该行填写,但在下一行中为空白。我知道该位置没有更改,但是由于它是空白,因此它正在将其捕获为唯一行。

我假设我需要使用ID字段进行分组。这是正确的语法吗?我是否需要列出数据框中的所有列?
cols = [list of all of the columns in the dataframe]
wfm.groupby(['id'])[cols].fillna(method='ffill', inplace=True)

在200,000行数据框中,大约有75,000个唯一ID。我尝试做一个
df.fillna(method='ffill', inplace=True)

但是我需要根据ID进行操作,并且我想确保自己的工作效率尽可能高(我的计算机花了很长时间读取所有这些文件并将其合并到内存中)。

最佳答案

如何向前填补每个小组?

 df = df.groupby(['id'], as_index=False).apply(lambda group: group.ffill())

关于pandas - 使用groupby在大型数据帧上有效地进行Fillna(正向填充)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36871783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com