将记录追加到数据框的底部

时间:2018-03-26 21:28:19

标签: python pandas

我有两个数据帧,如下面采样的数据帧。我正在尝试将其中一个数据框的记录追加到第一个数据框的底部。所以最终的数据框应该只有两列。相反,我似乎将一个数据框中的列附加到第一个数据框的右侧。有谁看到我做错了什么?

Code:

appendDf=df1.append(df2)


df1

    28343  \
0   42267   
1  157180   
2  186320   

  https://s.m.com/is/ime/M/ts/mized/5_fpx.tif  
0  https://sl.com/is/i/M/...                                  
1  https://sl.com/is/i/M/…                                  
2  https://sl.com/is/im/M/... 


df2

    454  \
0   223   
1  155   
2  334  

  https://s.m.com/is/ime/M/ts/mized/5.tif  
0  https://slret.com/is/i/M/...                                  
1  https://slfdsd.com/is/i/M/…                                  
2  https://slfd.com/is/im/M/... 


appendDf.head()

28343   https://s.m.com/is/ime/M/ts/mized/5_fpx.tif 454      https://s.m.com/is/ime/M/ts/mized/5.tif 

1 个答案:

答案 0 :(得分:1)

您的DataFrames似乎没有列标题(我想您的数据的第一行被用作列标题),这可能是您问题的根源。当您附加第二个DataFrame时,程序不知道数据对应哪些列,因此它将它们添加为新列。请参阅以下示例:

import pandas as pd

df1 = pd.DataFrame([[28343, 'http://link1'], [42267, 'http://link2'],
    [157180, 'http://link3'], [186320, 'http://link4']], columns=['ID','Link'])

df2 = pd.DataFrame([[454, 'http://link5'], [223, 'http://link6'],
    [155, 'http://link7'], [334, 'http://link8']])

appendedDF = df1.append(df2)

收率:

         ID          Link      0             1
0   28343.0  http://link1    NaN           NaN
1   42267.0  http://link2    NaN           NaN
2  157180.0  http://link3    NaN           NaN
3  186320.0  http://link4    NaN           NaN
0       NaN           NaN  454.0  http://link5
1       NaN           NaN  223.0  http://link6
2       NaN           NaN  155.0  http://link7
3       NaN           NaN  334.0  http://link8

正确实施:

import pandas as pd

df1 = pd.DataFrame([[28343, 'http://link1'], [42267, 'http://link2'],
    [157180, 'http://link3'], [186320, 'http://link4']], columns=['ID','Link'])

df2 = pd.DataFrame([[454, 'http://link5'], [223, 'http://link6'],
    [155, 'http://link7'], [334, 'http://link8']], columns=['ID','Link'])

appendedDF = df1.append(df2).reset_index(drop=True)

收率:

       ID          Link
0   28343  http://link1
1   42267  http://link2
2  157180  http://link3
3  186320  http://link4
4     454  http://link5
5     223  http://link6
6     155  http://link7
7     334  http://link8