Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 数据帧:根据字段的匹配列表将字段值从一个数据帧复制到另一个数据帧_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 3.x 数据帧:根据字段的匹配列表将字段值从一个数据帧复制到另一个数据帧

Python 3.x 数据帧:根据字段的匹配列表将字段值从一个数据帧复制到另一个数据帧,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,我有两个数据帧:2000行的小数据帧和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_dat

我有两个数据帧:2000行的小数据帧和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_数据框中的第0行,我发现在这个特定的第0行中,3个features列不是None或empty,所有其他feature fields列都不是None或empty。然后我会检查big_dataframe中是否有行,其中相同的3个features列等于small_dataframe 3个features列,而所有其他feature字段均为无或空。如果是这样,则将大数据框['object\u type']=小数据框['object\u type']

查看small_数据框中的第1行,我发现在这个特定的第1行中,8个features列不是None或empty,其他features fields列不是None或empty。然后,我会检查big_dataframe中是否有行,其中相同的8个特征等于small_dataframe 8个特征列,而所有其他特征字段列均为无或空。如果是这样,则将大数据框['object\u type']=小数据框['object\u type']

.
. and so on
.
查看small_dataframe中的第300行,我发现在这一特定的第1行中,17个features列不是None或empty,其他feature字段不是None或empty。然后,我会检查big_dataframe中是否有行,其中相同的17个特征等于small_dataframe 17特征,而所有其他特征字段均为无或空。如果是这样,则将大数据框['object\u type']=小数据框['object\u type']


我希望这样做的同时最大限度地利用内置函数,以避免在一个或两个帧上出现错误。请注意,如上所述,匹配的列数从一行更改为下一行。如果您能给我一些反馈意见,我将不胜感激

请给出一个具有预期结果的数据帧示例。请看一下如何创建。太棒了。。。。这正是我要找的。我对这一行有点困惑。df1.iloc[:,1:::==df2.iloc[:,1:]例如,这是如何成为一对真-假或真-假的。我希望能为我提供一个很好的参考,在这里讨论这一点。令人困惑的是,我本以为是真是假,而不是一对真是假。不过,你又救了我一天。很多很多感谢都不介意。。。这是一对,因为我们有两个字段。。。。嗯。。。。很抱歉搞混了。。。。再次感谢
df1 = pd.DataFrame({'object_type':[0,1,2,3,4,5,6,7],'f1':[None,None,None,2,3,4,5,2],'f2':[None,1,2,None,None,3,4,5]})
df2 = pd.DataFrame({'object_type':[None,None,None,None,None,None,None,None],'f1':[None,None,None,2,3,4,5,2],'f2':[None,0,2,None,None,3,4,5]})
#object_type is at the zeroth location
df1.iloc[:,1:] == df2.iloc[:,1:]
equality_test = df1.iloc[:,1:] == df2.iloc[:,1:]
df2 = df2.mask(equality_test.all(axis=1), other=df1)
print(df2)