python numpy 重复_python-Numpy和Pandas通过Bin重复值

该博客介绍了如何在Python中利用numpy和pandas库进行数据索引和映射。提供了三种方法,包括使用numpy索引、numpy的repeat函数以及pandas的map方法,来根据特定的Group值从数组a中提取对应的数据。这些方法在数据处理中具有不同的效率和适用场景。
摘要由CSDN通过智能技术生成

设定:

a = np.array([4, 2, 7, 8])

v = df.Group.values

dct = {}

选项1

使用numpy索引. (此解决方案假定您的组范围是0-N:

dct['numpy_indexing'] = a[v]

选项2

使用np.repeat. (此解决方案假定您的组没有隔行扫描):

dct['numpy_repeat'] = np.repeat(a, np.bincount(v))

选项3

使用地图.这种方法将比其他方法慢一些,但是更灵活一些,因为它允许交错组和非线性组:

d = dict(zip(np.unique(v), a))

dct['pandas_map'] = df.Group.map(d)

输出量

df.assign(**dct)

ID Group numpy_indexing numpy_repeat pandas_map

0 0 0 4 4 4

1 1 0 4 4 4

2 2 1 2 2 2

3 3 1 2 2 2

4 4 1 2 2 2

5 5 2 7 7 7

6 6 2 7 7 7

7 7 3 8 8 8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值