繁体   English   中英

基于 Pandas 中的两列的分桶?

[英]Bucketing based on two columns in Pandas?

假设我们有一个 dataframe 至少有两列,并且我们要使用两列来创建一个新列。 在这种情况下,假设两列都是 boolean 值的特征,我们想要一个包含 4 个组合的列。 标签可以是 0 - 3,但不必是 F,F 可能与 T,T 具有相同的桶。 这通常如何在 Pandas 中编码? 我很想知道如何将其推广到非布尔值,例如浮点数或整数。 也有特定的标签会有所帮助,即而不是 0-3 可能是“勘探”、“销售”、“待定”、“关闭”。

我想要的一个例子 dataframe 可能是......

特征_1 特征_2 feature_1_2_bucket
错误的 真的 3
真的 错误的 1
错误的 错误的 2
真的 真的 0

受此启发的示例应该会有所帮助:

>>> a = pd.DataFrame({"names":['a','b','c'], "v1": np.random.choice([True,False], size=3),
 "v2":np.random.choice([True,False], size=3)})
>>> a
  names     v1     v2
0     a  False   True
1     b   True  False
2     c  False   True

>>> b = {(True, True): 0, (True, False):1, (False, True): 2, (False, False): 3}
>>> a['v3'] = a.set_index(['v1', 'v2']).index.map(b.get)
>>> a
  names     v1     v2  v3
0     a  False   True   2
1     b   True  False   1
2     c  False   True   2

要获取v3中的其他值,只需更改字典b中的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM