我有以下数据框,它有大约 4000 个 Ticker,总共有大约 200 万行:
Ticker Date Rank
1 01/01/2000 5
1 01/02/2000 NaN
2 01/01/2000 4
2 01/02/2000 2
我现在运行以下代码来结转 Rank 列,它工作得很好。:
import pandas as pd
df= df.sort_values(by=["Ticker", "Date"], ascending=[True,True])
df['Rank'] = df.groupby('Ticker')['Rank'].fillna(value=None, method="ffill")
但是,我现在想结转一个不同的专栏。为了创建此列,我执行以下操作:
import numpy as np
df["Code"]=np.NaN
在这个函数中,我编写了一些代码,根据 df“add”中的日期和股票代码值,大约 200 个值将被 1 替换。此代码有效,如下所示:
df["Code"][(df.Date == add) & (df["Ticker"] == column)] = 1
这使我的数据框看起来像这样:
Ticker Date Rank Code
1 01/01/2000 5 NaN
1 01/02/2000 NaN NaN
2 01/01/2000 4 1
2 01/02/2000 2 NaN
现在,我想结转本专栏,但代码需要永远。
import pandas as pd
df= df.sort_values(by=["Ticker", "Date"], ascending=[True,True])
df['Code'] = df.groupby('Ticker')['Code'].fillna(value=None, method="ffill")
我已经运行了两天,我的电脑崩溃了。我做事的方式肯定有一些错误,因为上面的结转运行得太快了,而这个甚至没有完成。我检查了“代码”的dtype,它是float64。
任何人都可以帮忙吗?