如何在系列的开头追加/插入一个项目?

时间:2014-02-24 17:22:05

标签: python pandas

成像我有一系列看起来像这样:

Out[64]: 
2      0
3      1
80     1
83     1
84     2
85     2

如何在本系列的开头添加一个项目?本机pandas.Series.append函数只会附加在最后。

非常感谢

4 个答案:

答案 0 :(得分:7)

有一个pandas.concat功能......

import pandas as pd
a = pd.Series([2,3,4])
pd.concat([pd.Series([1]), a])

请参阅Merge, Join, and Concatenate documentation

答案 1 :(得分:1)

使用concat或append,结果系列将具有重复的索引:

表示concat():

import pandas as pd
a = pd.Series([2,3,4])
pd.concat([pd.Series([1]), a])

Out[143]: 
0    1
0    2
1    3
2    4

和append():

import pandas as pd
a = pd.Series([2,3,4])
a.append(pd.Series([1]))

Out[149]: 
0    2
1    3
2    4
0    1

这可能是将来的问题,因为[0](如果将结果分配给a)将为两种情况返回两个值。

我的解决方案就是这样:

import pandas as pd
a = pd.Series([2,3,4])
b = [1]
b[1:] = a
pd.Series(b)

Out[199]: 
0    1
1    2
2    3
3    4

或者,通过使用concat()重新索引:

import pandas as pd
a = pd.Series([2,3,4])
a.index = a.index + 1  
pd.concat([pd.Series([1]), a])

Out[208]: 
0    1
1    2
2    3
3    4

答案 2 :(得分:0)

同样,你可以使用追加系列的列表或元组(只要你使用pandas版本.13或更高版本)

import pandas as pd
a = pd.Series([2,3,4])
pd.Series.append((pd.Series([1]), a))

答案 3 :(得分:0)

如果您需要在不同系列b前面添加一个值,说出它的最后一个值,那么这对我有用:

import pandas as pd
a = pd.Series([2, 3, 4])
b = pd.Series([0, 1])
pd.concat([b[-1:], a])