如何在熊猫数据框的顶部添加一行?

时间:2019-03-19 06:16:00

标签: python pandas dataframe

我以此读取数据:

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的顶部添加一个等于1的新行。但是使用以下命令不起作用,因为我的数据索引是从3714到3722,并且在数据帧的末尾添加了一个索引0,而不是它的顶部!

dataset_shifted = dataset_shifted .loc[0 , :] = 1

1 个答案:

答案 0 :(得分:2)

如果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