在dataframe表头插入新行的实现

2022年5月6日 882点热度 0人点赞 0条评论

写了一个小工具,用来对既有的网格策略表进行上下拓展,用于在价格运行破网后,表格继续按价格方向进行延伸。

一般来说,向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)

QThinker

前地产从业者,假装是个程序员,热爱编程与交易 自研QThinker量化交易框架

文章评论