代码之家  ›  专栏  ›  技术社区  ›  WDR

如何将行添加到数据帧的顶部?

  •  2
  • WDR  · 技术社区  · 5 年前

    我通过以下方式读取数据:

    dataset = pd.read_csv(r' ...\x.csv')
    

    dataset = dataset.loc[len(dataset)-data_length:  , :]
    

    进行换档:

    dataset_shifted = dataset.shift(1)
    dataset_shifted = dataset_shifted.dropna()
    

    dataset . 但是使用下面的命令不起作用,因为我的数据索引是从3714到3722的,它会将索引0添加到数据帧的末尾,而不是它的顶部!

    dataset_shifted = dataset_shifted .loc[0 , :] = 1
    
    1 回复  |  直到 5 年前
        1
  •  3
  •   jezrael    5 年前

    如果中没有缺少值 DataFrame dropna DataFrame.fillna :

    dataset = pd.DataFrame({
             'B':[4,5,4],
             'C':[7,8,9],
             'D':[1,3,5],
    
    }, index=[3714, 3715, 3716])
    
    print (dataset)
          B  C  D
    3714  4  7  1
    3715  5  8  3
    3716  4  9  5
    
    dataset_shifted = dataset.shift(1).fillna(1)
    print (dataset_shifted)
            B    C    D
    3714  1.0  1.0  1.0
    3715  4.0  7.0  1.0
    3716  5.0  8.0  3.0
    

    如果可能缺少值,则仅按位置设置第一行 DataFrame.iloc

    dataset_shifted = dataset.shift(1)
    dataset_shifted.iloc[0 , :] = 1
    

    您的解决方案应该更改:

    dataset_shifted = dataset.shift(1)
    dataset_shifted = dataset_shifted.dropna()
    dataset_shifted.loc[0 , :] = 1
    dataset_shifted = dataset_shifted.sort_index()
    
    print (dataset_shifted)
            B    C    D
    0     1.0  1.0  1.0
    3715  4.0  7.0  1.0
    3716  5.0  8.0  3.0