【发布时间】:2020-10-18 19:41:53
【问题描述】:
我有一个非常大(1500 万行)的 pandas 数据框 df,下面给出了示例:
import pandas as pd
df = pd.DataFrame({'a':['ar', 're' ,'rw', 'rew', 'are'], 'b':['gh', 're', 'ww', 'rew', 'all'], 'c':['ar', 're', 'ww', '', 'different']})
df
a b c
0 ar gh ar
1 re re re
2 rw ww ww
3 rew rew
4 are all different
我想添加另一列 d,它具有其他 3 列中最常见的值(在实际数据框中可能是 4 或 5 列),即 a, b, c 在这种情况下。所以输出看起来像df,如下所示:
a b c d
0 ar gh ar ar
1 re re re re
2 rw ww ww ww
3 rew rew rew
4 are all different
考虑到df 的大小为 1500 万行,在不使用可能非常慢(45 分钟到一个小时)的 lambda 函数的情况下实现它的最有效方法是什么。
【问题讨论】:
-
df.mode(axis=1).iloc[:,0]? -
感谢@anky 不知道模式也适用于字符串。让我试试大号
df -
@anky 17 分钟后仍未返回。
-
没有没有尝试
np.where。df大约有 1700 万行。 -
当然.....@anky.
标签: python-3.x pandas string dataframe