Python Pandas: 如何根据另一个数组的条件替换DataFrame中的值

我有一个如下所示的DataFrame。两个列都包含Member_ID,表示哪些Member_ID与其他Member_ID相连

   col1  col2    1     3    1     4    1     5    2     3    2     4    3     1    3     2    3     5    4     1    4     2    5     1    5     3    

我已经计算了每个Member_ID与多少个Member_ID相连。例如,Member_ID 1与3个Member_ID相连。如果一个Member_ID包含3个或更多的连接,我们需要在Member_ID前面加上“a”,否则我们需要加上“b”,所以对于Member_ID 1,我们需要标记为“a1”。同样,我已经为每个Member_ID计算了标签,标签数组如下。

 member_ID   No_of_con  Label    1          3         a1    2          2         b2    3          3         a3    4          2         b4    5          2         b5    

现在我需要参考标签数组来替换第一个DataFrame中的值。DataFrame很大,使用for循环效率不高,那么如何用Pandas更简单地实现这一点?我期望的结果如下

    col1     col2    a1         a3    a1         b4    a1         b5    b2         a3    b2         b4    a3         a1    a3         b2    a3         b5    b4         a1    b4         b2    b5         a1    b5         a3


回答:

我们可以使用stackmapunstack来实现:

In [9]: d1.stack().map(d2.set_index('member_ID')['Label']).unstack()Out[9]:   col1 col20    a1   a31    a1   b42    a1   b53    b2   a34    b2   b45    a3   a16    a3   b27    a3   b58    b4   a19    b4   b210   b5   a111   b5   a3

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注