我有一个像这样的数据框:
phone_number_1_clean phone_number_2_clean phone_number_3_clean
NaN NaN 8546987
8316589 8751369 NaN
4569874 NaN 2645981
Run Code Online (Sandbox Code Playgroud)
我想phone_number_1_clean尽可能多的人口。这将需要转移phone_number_2_clean或phone_number_3_clean转移phone_number_1_clean,反之亦然,这意味着phone_number_2_clean如果phone_number_1_clean人口众多,则尽可能多地人口。
输出应该类似于:
phone_number_1_clean phone_number_2_clean phone_number_3_clean
8546987 NaN NaN
8316589 8751369 NaN
4569874 2645981 NaN
Run Code Online (Sandbox Code Playgroud)
我也许可以做它的np.where陈述,但可能会很混乱。
该方法最好是矢量化的,因为将应用于大型数据帧。
我使用python的sklearn软件包制作了一个随机森林模型,其中将种子设置为1234。为了生产模型,我们使用pyspark。如果我要传递相同的超参数和相同的种子值,即1234,它将得到相同的结果吗?
基本上,随机种子数在不同系统之间起作用吗?
我想根据第二个索引重复删除以下分层索引的数据帧。我还没有找到一种方法来做到这一点。有一个,pandas.Multiindex.drop_duplicates()但是它不允许您指定级别。
一个示例数据框是:
In [5]: df
Out[5]:
given_name surname dob phone_number_1_clean
985 2414 1.0 1.0 0.0 1.0
122864 1.0 1.0 0.0 0.0
167863 1.0 1.0 0.0 0.0
418911 1.0 1.0 0.0 0.0
516362 1.0 1.0 0.0 0.0
2414 122864 1.0 1.0 0.0 0.0
167863 1.0 1.0 1.0 0.0
418911 1.0 1.0 1.0 0.0
516362 1.0 1.0 0.0 0.0
122864 167863 1.0 1.0 0.0 1.0
418911 1.0 1.0 0.0 1.0
516362 1.0 1.0 0.0 1.0
167863 418911 1.0 1.0 1.0 …Run Code Online (Sandbox Code Playgroud) 我想使用 pyspark 为组中的每个组分配一个从 0 或 1 开始的唯一 ID 号,并为每个组递增 1。
我之前已经使用 pandas 和 python 完成了此操作,命令如下:
df['id_num'] = (df
.groupby('column_name')
.grouper
.group_info[0])
Run Code Online (Sandbox Code Playgroud)
输入和所需输出的玩具示例是:
输入
+------+
|object|
+------+
|apple |
|orange|
|pear |
|berry |
|apple |
|pear |
|berry |
+------+
Run Code Online (Sandbox Code Playgroud)
输出:
+------+--+
|object|id|
+------+--+
|apple |1 |
|orange|2 |
|pear |3 |
|berry |4 |
|apple |1 |
|pear |3 |
|berry |4 |
+------+--+
Run Code Online (Sandbox Code Playgroud)