将两只熊猫系列减少为一只

时间:2013-07-11 17:00:48

标签: python numpy pandas

问题:

我想参加系列1和系列2并创建一个带有值的新系列(系列1,系列2)。基本上,我有两个大熊猫系列,我想合并为一个。虽然这些值表示为ints,但它们是factors

实施例。

Series 1   Series 2        Series 3
  1            2      ---   (1,2)
  2            3      to    (2,3)
  3            4      ---   (3,4)

我尝试了什么

pandas: combine two columns in a DataFrame

pandas功能:

concatmergejoin

到目前为止,我只能组合这些值,(即将元素添加到一起,将系列相互追加,或者根据值进行合并)。因为数据集很大,所以我希望避免循环。虽然这是迄今为止我能想到的唯一方法。我觉得这应该很容易用大熊猫的力量来完成。

有什么想法吗?谢谢你看看!

1 个答案:

答案 0 :(得分:3)

你打算怎么办?

In [1]: s1 = Series([1,2,3])

In [2]: s2 = Series([2,3,4])

In [4]: Series(zip(s1,s2))
Out[4]: 
0    (1, 2)
1    (2, 3)
2    (3, 4)
dtype: object

这是一个想法,不确定它是否适合你想要的......也许

In [70]: s = Series([1,2,4,5,6])

一个离散的量化器(基本上是垃圾箱,你可以根据需要提供垃圾箱) 产生一个分类

In [71]: pd.qcut(s,2)
Out[71]: 
Categorical: 
array(['[1, 4]', '[1, 4]', '[1, 4]', '(4, 6]', '(4, 6]'], dtype=object)
Levels (2): Index(['[1, 4]', '(4, 6]'], dtype=object)

然后你可以在

上进行value_counts
In [72]: pd.value_counts(pd.qcut(s,2))
Out[72]: 
[1, 4]    3
(4, 6]    2
dtype: int64