我以此读取数据:
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
答案 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