基于python中的两列优化合并
我有两个数据帧:基于python中的两列优化合并,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧: df1 = pd.DataFrame({ 'message' : (["hi","hi","hello?","bye","are you there?","how are you?"]), 'serial' : ([14,12,13,13,14,14]), 'messageOrder': (1,1,1,2,3,2)}) df2 = pd.DataFrame({ 'message' : (["h
df1 = pd.DataFrame({ 'message' : (["hi","hi","hello?","bye","are you there?","how are you?"]),
'serial' : ([14,12,13,13,14,14]),
'messageOrder': (1,1,1,2,3,2)})
df2 = pd.DataFrame({ 'message' : (["hi","hi","hello?","bye","are you there?","how are you?"]),
'B' : pd.Timestamp('20130102'),
'D' : np.array([3] * 6,dtype='int32'),
'serial' : ([14,12,13,13,14,14])})
我正在寻找将messageOrder列从df1合并到df2的最佳方法(df2还有许多列我没有包括在示例中)。我想遍历所有行,然后:
- 验证df1和df2中两行之间的“串行”是否相同
- 根据内容匹配“消息”列
数据帧有14000行长,每个“序列”有1-20个值。
df1.merge(df2)
?df1和df2之间的行顺序不一样,如果不比较内容,我无法仅根据“序列”判断“messageOrder”是什么,在许多情况下,不同“序列”中的内容是相同的列:)行的顺序无关紧要pandas.merge
默认情况下。有趣的是,当我尝试df1.merge(df2)时,表中只保留了一小部分(14000个表中的400个),当我尝试df1.merge(df2,on='serial')时,行数变为37105。我怎样才能避开这件事?