【问题标题】:Combining multiple series and creating a new one in a Pandas df组合多个系列并在 Pandas df 中创建一个新系列
【发布时间】:2018-12-20 02:16:42
【问题描述】:

我有 5 个 pandas.series 我想合并成一个新的。这怎么可能?例如。我有 s1: en s2: gl s3: a s4: nd 我想做一个新的 s5: england

我尝试过 pd.concat、combine、append 但似乎没有任何效果。

谢谢!

【问题讨论】:

    标签: python-3.x pandas merge series


    【解决方案1】:

    如果你有诸如

    之类的系列
    s1 = pd.Series(['en' , 'b'])
    s2 = pd.Series(['gla', 'ra'])
    s3 = pd.Series(['nd' , 'zil'])
    

    你可以sum他们

    >>> s1+s2+s3
    
    0    england
    1     brazil
    dtype: object
    

    如果你有诸如

    之类的系列
    s1 = pd.Series(['e', 'n'])
    s2 = pd.Series(['g', 'l', 'a'])
    s3 = pd.Series(['n','d'])
    

    你可以join他们

    >>> ''.join(s1.tolist()+s2.tolist()+s3.tolist())
    
    'england'
    

    sum

    >>> s1.sum() + s2.sum() + s3.sum()
    'england'
    

    【讨论】:

    • 非常感谢@RafaelC!但是如果我有这样的整数呢: s1 = pd.series([2018, 2017, 2016]) s2 = pd.series([0, 1, 2]) s3 = pd.series ([10.23, 22.33, 99.22]) ??再次感谢!
    • 这种情况下的预期输出是什么?
    • 系列中有拆分字符串(就像上面的 en,gl,a,nd 示例一样,谢谢!)但也有带有年、小时、分秒的日期(如 s1 = pd.series ([2018, 2017, 2016]) s2 = pd.series([0, 1, 2]) s3 = pd.series ([10.23, 22.33, 99.22])。所以预期的输出应该是一个新的系列,比如说df['timestamp'] 将是 2018 0 10.23 , 2017 1 22.33 , 2016 2 99.22 等。
    猜你喜欢
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    相关资源
    最近更新 更多