写了一个小工具,用来对既有的网格策略表进行上下拓展,用于在价格运行破网后,表格继续按价格方向进行延伸。
一般来说,向dataframe尾部添加新行我们可以用df.append方便的实现,但是如果要想dataframe头部插入新行,相对就要复杂一些,我的实现方式是这样:
用df.loc[index]的方式,向dataframe插入数据,这个index是从-1开始的负值,依需要插入的数据条目数量逐步递减,最后得到的datafame表是一个具有负索引值的新表,然后我们单独对index列的所有值均加上新插入数据的行数,这样结果的新index列的起始值又变成了0,而你新加入的数据行index就依次变成了1,2,3……,然后我们将这个最终dataframe进行sort_index(inplace=True),这样数据行就完美的插入了源dataframe的头部。
一段简单的实例代码如下,这段代码并不能直接执行,其中的变量需要自己赋值,程序演示实现细节而不是结果:
import pandas as pd
df = pd.read_csv(df_file_path,index_col=0)
extend_count = 5
for i in range(extend_count):
new_line_data1 = row_data1_you_wanna_insert
new_line_data2 = row_data2_you_wanna_insert
df.loc[(-1 * (i+1))] = [
new_line_data1,
new_line_data2
]
new_index = list(map(lambda x:x+extend_count,df.index))
df.index = new_index
df.sort_index(inplace=True)
文章评论