【问题标题】:Append to Series in python/pandas not working在 python/pandas 中追加到系列不起作用
【发布时间】:2017-05-05 05:26:40
【问题描述】:

我正在尝试将值附加到通过查找第 n 和第 n + 1 个元素之间的差异获得的熊猫系列:

q = pd.Series([])

while i < len(other array):
    diff = some int value
    a = pd.Series([diff], ignore_index=True)
    q.append(a)
    i+=1

我得到的输出是:

Series([], dtype: float64)

为什么我没有得到一个包含所有附加值的数组?

--

附:这是一个数据科学问题,我必须通过搜索数据框来找到县最多的州。我正在使用一个州结束和下一个州开始的索引值(我用来查找差异的数组中的值)来确定该州有多少个县。如果有人比我上面知道如何更好地解决这个问题,请告诉我!

【问题讨论】:

  • 当您在 while 循环的每次迭代中打印您的 q 系列时会发生什么?

标签: python pandas dataframe series


【解决方案1】:

append 方法无法就地工作。相反,它返回一个新的Series 对象。所以应该是:

q = q.append(a)

希望对你有帮助!

【讨论】:

    【解决方案2】:

    Series.append 文档指出 append 其他行到此帧的末尾,返回一个新对象。

    这些示例有点令人困惑,因为它似乎表明它可以工作,但如果您仔细观察,您会注意到它们使用的是交互式 python,它打印最后一次调用的结果(新对象)而不是显示原始对象。

    调用append的结果其实是一个全新的Series

    在您的示例中,您需要每次将 q 分配给 .append 返回的新对象:

    q = pd.Series([])
    while i < len(other array):
        diff = some int value
        a = pd.Series([diff], ignore_index=True)
        # change of code here
        q = q.append(a)
        i+=1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 2021-01-10
      • 2011-11-10
      • 2014-04-15
      • 2021-01-09
      • 2017-08-25
      • 2015-03-27
      相关资源
      最近更新 更多