【问题标题】:append dataframes avoiding NaN python附加数据框避免 NaN python
【发布时间】:2020-09-08 00:19:51
【问题描述】:

我有 2 个数据帧 (df_1) 包含 2 行和 100 列,df_2 包含 70 行和 100 列。我想将 df_1 的另外 2 行附加到 df_2 的 70 行

df_1
                   0        1        2        3        4        5            
   first_point   458.69   457.71   420.82   482.50   501.89   405.89      
    max_point    3654.07  8134.25  7520.39  6913.17  7564.12  5883.32     

df_2
    Mean1   Mean2   Mean3   Mean4   Mean5   Mean6   
0  458.69  457.71  420.82  482.50  501.89  405.89     
1  437.92  339.23  287.35  462.16  405.46  387.76    
2  443.19  303.66  314.83  461.07  349.54  399.97     
3  416.03  315.33  317.84  456.53  390.97  374.84    
4  406.89  306.29  328.26  457.55  456.30  398.38 

我想将 df_1 的 2 附加行附加到 df_2 的 70 行到 df_3 中

                0       1       2       3       4       5
first_point   458.69  457.71  420.82  482.50  501.89  405.89      
 max_point    3654.07 8134.25 7520.39 6913.17 7564.12 5883.32    
           0  458.69  457.71  420.82  482.50  501.89  405.89     
           1  437.92  339.23  287.35  462.16  405.46  387.76    
           2  443.19  303.66  314.83  461.07  349.54  399.97     
           3  416.03  315.33  317.84  456.53  390.97  374.84    
           4  406.89  306.29  328.26  457.55  456.30  398.38 

我用过

df_3 =df_1.append(df_2)

                  0        1        2        3        4        5        6  \
first_point   458.69   457.71   420.82   482.50   501.89   405.89   480.77   
max_point    3654.07  8134.25  7520.39  6913.17  7564.12  5883.32  5849.17   
0                NaN      NaN      NaN      NaN      NaN      NaN      NaN   
1                NaN      NaN      NaN      NaN      NaN      NaN      NaN   
2                NaN      NaN      NaN      NaN      NaN      NaN      NaN   
3                NaN      NaN      NaN      NaN      NaN      NaN      NaN   
4                NaN      NaN      NaN      NaN      NaN      NaN      NaN   

如果列数不相等,我会理解,但事实并非如此。我也试过了

df_3 =df_1.append(df_02,ignore_index = True)

导致相同的结果...我该怎么办?我一直在环顾四周,但似乎找不到正确的答案。 非常感谢!

【问题讨论】:

  • df_1 有 7 列 (0-6),df_2 有 6 列。因此,两个数据框中的列长度不等。
  • 重命名df_1 的列以匹配df_2?此外,删除 df_1 的最后一列。那么 pandas 将没有哪些列应该与哪些匹配。
  • 嗨 Mayank!当我复制示例时,这是一个错字,对不起

标签: python pandas dataframe append nan


【解决方案1】:

你可以这样做:

## rename column names in both dataframes to match each other
In [1412]: df_1.columns = range(df_1.shape[1])
In [1407]: df_2.columns = range(df_2.shape[1])

## now append
In [1414]: df_3 = df_1.append(df_2)    
In [1415]: df_3 
Out[1415]: 
                   0        1        2        3        4        5
first_point   458.69   457.71   420.82   482.50   501.89   405.89
max_point    3654.07  8134.25  7520.39  6913.17  7564.12  5883.32
0             458.69   457.71   420.82   482.50   501.89   405.89
1             437.92   339.23   287.35   462.16   405.46   387.76
2             443.19   303.66   314.83   461.07   349.54   399.97
3             416.03   315.33   317.84   456.53   390.97   374.84
4             406.89   306.29   328.26   457.55   456.30   398.38

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 2019-03-22
    • 2021-12-27
    相关资源
    最近更新 更多