Python 将行从dataframeB插入到DataframeA,带键,不带合并

Python 将行从dataframeB插入到DataframeA,带键,不带合并,python,dataframe,Python,Dataframe,我有一个dataframe,其中有1000条记录,如下所示: ID to from Date price Type 1 69 18 2/2020 10 A 2 11 12 2/2020 5 A 3 18 10 3/2020 4 B 4 10 11 3/2020 10 A 5 12 69 3/2020

我有一个
dataframe
,其中有1000条记录,如下所示:

ID to    from    Date     price    Type 

1  69    18     2/2020     10       A
2  11    12     2/2020      5       A
3  18    10     3/2020      4       B
4  10    11     3/2020     10       A
5  12    69     3/2020      4       B 
6  12    20     3/2020      3       B
7  69    21     3/2020      3       A 
我想要的输出是:

     ID to   from     Date    price    Type  ID  to   from     Date    price    Type 
     1  69    18     2/2020     4        A    5  12    69      3/2020     4      B 
     1' 69    18     2/2020     6        A    Nan  Nan  Nan     Nan      Nan   Nan
     2  11    12     2/2020     5        A    Nan  Nan  Nan     Nan      Nan    Nan 
     4  10    11     3/2020     4        A     3  18    10    3/2020     4       B
     4' 10    11     3/2020     6        A    Nan   Nan   Nan    Nan     Nan   Nan
    Nan Nan   Nan     Nan      Nan      Nan    6     12    20   3/2020     3     B              
    7  69    21     3/2020      3       A     Nan   Nan   Nan    Nan    Nan    Nan
其思想是迭代行,如果类型为B,则将行放在类型为A且from=to的第一条记录旁边, 如果价格等于它的ok,如果它没有以更高的价格拆分行,则新的价格将被取消

我将数据帧划分为A型和B型,并尝试迭代这两种类型

grp = df.groupby('type')

transformed_df_list = []

for idx, frame in grp:
frame.reset_index(drop=True, inplace=True)
transformed_df_list.append(frame.copy())
A = pd.DataFrame([transformed_df_list[0])
B=  pd.DataFrame([transformed_df_list[1])
for i , row in A.iterrows(): 
    for i, row1 in B.iterrows(): 
        if row['to'] == row1['from']:
           if row['price'] == row1['price']:
            row_df = pd.DataFrame([row1])
            output = pd.merge(A ,B,  how='left' , left_on =['to'] ,  right_on =['from'] )
问题是,使用合并函数a可以获得多个重复行,而我无法检查拆分行的价格?
有没有办法在没有合并功能的情况下在数据帧中插入B行?

重复行是您唯一关心的合并吗?不仅如此,我不知道如何检查价格和拆分?拆分行是什么意思?是的,如果dfa['to']==dfb['from']和dfa['price']==dfb['price']下一步插入dfb行,如果dfa['price']>dfb['price'],则分割行dfa,新的价格行是dfa['price']=dfa['price']-dfb['price'],那么分割是什么意思?重复行是您唯一关心的合并吗?不仅仅是,我不知道如何检查价格和分割?你说的分割是什么意思?是的,如果dfa['to']==dfb['from']和dfa['price']==dfb['price']下一步只插入dfb行,如果dfa['price']>dfb['price'],则分割行dfa,新的价格行是dfa['price']=dfa['price']-dfb['price'],那么分割是什么意思?