组合多个系列并在 Pandas df 中创建一个新系列

Posted

技术标签:

【中文标题】组合多个系列并在 Pandas df 中创建一个新系列【英文标题】:Combining multiple series and creating a new one in a 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 但似乎没有任何效果。

谢谢!

【问题讨论】:

【参考方案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 等。

以上是关于组合多个系列并在 Pandas df 中创建一个新系列的主要内容,如果未能解决你的问题,请参考以下文章

组合多个对象并在python中创建重叠属性列表

如何根据多个条件将 1 个 pandas 数据帧合并或组合到另一个数据帧

Pandas - 匹配来自两个数据帧的两列并在 df1 中创建新列

如何在 pandas DataFrame 中的字符串模式后提取数字并在 python 中创建新功能

从 Pandas 数据框中另一个系列分段的日期累积计数创建增量计数

如何从 pandas groupby().sum() 的输出创建一个新列?