Pandas数据框:根据匹配的字段列表将字段值从一个数据框复制到另一个数据框

时间:2020-01-19 11:45:17

标签: python-3.x pandas dataframe

我有两个数据帧:Small_dataframe(2000行)和big_dataframe(100万+行)

Small_dataframe has the following fields.  The object_type field contains values of interest:
object_type, feature_1, feature_2, feature_3 .... feature_100.  

如果Small_dataframe中的字段子集与big_dataframe中相同的子集匹配,则需要将Small_dataframe的每一行中的object_type复制到big_dataframe,如下所示。

big_dataframe has the same fields (but object_type field in big_dataframe is initially empty):
object_type, feature_1, feature_2, feature_3 .... feature_100

操作示例:

查看小型Small_dataframe中的第0行,我发现在此特定的第0行中,3个要素列不为None或为空,而所有其他要素字段(列)均为None或为空。然后,我将在big_dataframe中检查是否有行,其中相同的3个要素(列)等于small_dataframe 3个要素(列),而所有其他要素字段均为None或为空。如果是这样,则设置big_dataframe ['object_type'] = small_dataframe ['object_type']。

查看小型Small_dataframe中的第1行,我发现在此特定的第1行中,8个要素列不为None或为空,其他要素字段(列)为None或为空。然后,我将在big_dataframe中进行检查,以查看是否存在与small_dataframe 8个要素(列)相同的8个要素,而所有其他要素字段(列)都为无或为空的行。如果是这样,则设置big_dataframe ['object_type'] = small_dataframe ['object_type']。

.
. and so on
.

查看小型Small_dataframe中的#300行,我发现在此特定的行1中,17个要素列不为None或为空,其他要素字段为None或为空。然后,我将在big_dataframe中检查是否有行,其中相同的17个特征等于small_dataframe 17个特征,而所有其他特征字段为None或为空。如果是这样,则设置big_dataframe ['object_type'] = small_dataframe ['object_type']。

我希望做到这一点,同时最大程度地使用内置功能,以避免熊猫在一个或两个框架上出现迭代。请注意,如上所述,匹配的列数从一行变为另一行。我希望您能以更有效的方式以最少的循环实现此目的的任何反馈。

0 个答案:

没有答案