我有一个如下所示的 pandas DF,我正在尝试将不同行中的值计数转换为以下格式:
COL1 COL2 COL3
C1 None None
C1 C2 None
C1 C1 None
C1 C2 C3
至
C1 C2 C3
1 0 0
1 1 0
2 0 0
1 1 1
我在这里找到了这个答案(在 DataFrame 的每一行中计算 Series 中项目的出现次数)
这可以满足我的需要,但在我的数据集(400 万行)上非常慢。我试图用 400,000 行来完成它,但它仍然没有以可接受的速度运行。
我相信它是通过大量数据集进行查找的列表,并且 apply 本质上是一个 for 循环。是巨大的循环减慢了这个过程。这里的潜在解决方案基本上提到不要使用 Apply,这会使这里的执行变得乏味,因为我的列表中有 C1、C2...C100 和 10 个垂直列来验证计数。关于我可以在这里尝试什么来提高性能的任何提示?
这是下面的代码:
df_store = df.apply(pd.Series.value_counts, axis=1)[list_lookup].fillna(0)