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