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

2024-05-14 06:51:32 发布

您现在位置:Python中文网/ 问答频道 /正文

想象一下我有一个系列像这样:

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

如何在本系列的开头添加项目?原生pandas.Series.append函数只在末尾追加。

非常感谢


Tags: 项目函数pandasoutseries原生末尾想象
3条回答

有一个pandas.concat函数。。。

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

请参阅Merge, Join, and Concatenate documentation

使用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

这在将来可能是一个问题,因为a[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

类似地,您可以将append与序列的列表或元组一起使用(只要您使用的是pandas版本.13或更高版本)

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

相关问题 更多 >

    热门问题