首页 文章

将项目添加到pandas.Series?

提问于
浏览
8

我想为我的 pandas.Series 添加一个整数
这是我的代码:

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

当我运行这个时,我收到以下错误:

Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    f.append(6)
  File "C:\Python33\lib\site-packages\pandas\core\series.py", line 2047, in append
    verify_integrity=verify_integrity)
  File "C:\Python33\lib\site-packages\pandas\tools\merge.py", line 878, in concat
    verify_integrity=verify_integrity)
  File "C:\Python33\lib\site-packages\pandas\tools\merge.py", line 954, in __init__
    self.new_axes = self._get_new_axes()
  File "C:\Python33\lib\site-packages\pandas\tools\merge.py", line 1146, in _get_new_axes
    concat_axis = self._get_concat_axis()
  File "C:\Python33\lib\site-packages\pandas\tools\merge.py", line 1163, in _get_concat_axis
    indexes = [x.index for x in self.objs]
  File "C:\Python33\lib\site-packages\pandas\tools\merge.py", line 1163, in <listcomp>
    indexes = [x.index for x in self.objs]
AttributeError: 'int' object has no attribute 'index'

我该如何解决这个问题?

2 回答

  • 0

    将附加项转换为 Series

    >>> ds = pd.Series([1,2,3,4,5]) 
    >>> ds.append(pd.Series([6]))
    0    1
    1    2
    2    3
    3    4
    4    5
    0    6
    dtype: int64
    

    或使用 DataFrame

    >>> df = pd.DataFrame(ds)
    >>> df.append([6], ignore_index=True)
       0
    0  1
    1  2
    2  3
    3  4
    4  5
    5  6
    

    如果你的索引没有间隙,那么最后一个选项,

    >>> ds.set_value(max(ds.index) + 1,  6)
    0    1
    1    2
    2    3
    3    4
    4    5
    5    6
    dtype: int64
    

    你可以使用numpy作为最后的手段:

    >>> import numpy as np
    >>> pd.Series(np.concatenate((ds.values, [6])))
    
  • 21

    set_value显示警告:

    FutureWarning:不推荐使用set_value,将来的版本中将删除它 . 请改用.at []或.iat []访问器

    所以你可以使用'at'如下:

    input.at[input.index[-1]+1]=6
    

相关问题