我有一个pandas DataFrame
In [103]: df=pd.DataFrame({'A': [3,4,7,5], 'B': [6,1,3,6]})
In [104]: df
Out[104]:
A B
0 3 6
1 4 1
2 7 3
3 5 6
[4 rows x 2 columns]
如何在索引= 2且移位指数低于+1的位置插入A = 9和B = 9的新行?结果是
In [114]: df
Out[114]:
A B
0 3 6
1 4 1
2 9 9
3 7 3
4 5 6
[5 rows x 2 columns]
答案 0 :(得分:2)
可能有更有效的方法,但这里有一种方法 - 在你要插入值的点周围取一些头/尾切片,然后将它们与pd.concat一起堆叠。
In[1] pd.concat([df.loc[0:1], pd.DataFrame({'A':9, 'B':9}, index=[0]), df.loc[2:]], ignore_index=True)
Out[92]:
A B
0 3 6
1 4 1
2 9 9
3 7 3
4 5 6
答案 1 :(得分:1)
我觉得这样很有意思:
df=pd.DataFrame({'A': [3,4,7,5], 'B': [6,1,3,6]})
x = len(df.index)
for item in df.index:
if x > 2:
df.ix[x] = df.ix[x-1]
x = x-1
df.ix[2] = 9