在 Python Pandas DataFrame 中插入行

Insert Row in Python Pandas DataFrame

(我是 python 的新手,对我犯的任何错误表示抱歉,希望您能理解我)

我在 Python 中搜索了一种将行插入 Pandas DataFrame 的方法,我找到了这个:

add one row in a pandas.DataFrame

我使用了 fred 在该主题的已接受答案中提供的代码,但代码覆盖了我的行: 我的代码(在某些条件下为每列插入一个值为“-1”的行):

df.loc[i+1] = [-1 for n in range(len(df.columns))]

如何让代码在不覆盖的情况下插入一行? 例如,如果我有一个 50 行的 DataFrame,在位置 25 插入一行(作为示例),并使 DataFrame 有 51 行(作为 25 一个额外的新行)。

希望你能理解我的问题。 (抱歉有任何英文错误)

谢谢。

更新:

有人建议:

Is it possible to insert a row at an arbitrary position in a dataframe using pandas?

试过了,没用。事实上,它什么都不做,不添加任何行。

 line = pd.DataFrame({[-1 for n in range(len(df.columns))]}, index=[i+1])
 df = pd.concat([ df.ix[:i],  line,  df.ix[i+1:]]).reset_index(drop=True)

还有其他想法吗?

带小DataFrame,如果要插入一行,在位置1:

df = pd.DataFrame({'a':[0,1],'b':[2,3]})

df1 = pd.DataFrame([4,5]).T  

pd.concat([df[:1], df1.rename(columns=dict(zip(df1.columns,df.columns))), df[1:]])

#Out[46]: 
#   a  b
#0  0  2
#0  4  5
#1  1  3