我有一个带有模式的数据集,
自行车_ID | REGN_NUMBER | ENGINE_NUMBER | CHASSIS_NUMBER | BUYED_YEAR |
---|---|---|---|---|
1 | XN67TY567 | 34567ABGN65 | 145089 | 2011 |
2 | XN67TM567 | 34567ABGT65 | 145085 | 2011 |
3 | XN67TM569 | 34567VBGT65 | 1450867 | 2013 |
. | . | . | . | . |
. | . | . | . | . |
2870763 | XN56RTMN | 34786VHGT65 | 14501236 | 2016 |
现在我想生成从 28,70,764 到 3,28,70,764 的数据,即生成大约 3000 万行 就像在 pandas 中一样,我们可以使用下面的方法。
val = 2870764
df3['POLICY_ID'] = range(val ,val+30000000)
但是由于 pandas 无法生成大量数据,因此有什么方法可以通过在 Vaex 中解决这个问题。
但是 Vaex 给我抛出了一个错误
ValueError: range(2870764, 5870764) is not of string or Expression type,
but <class 'range'>
有人可以建议我们在 Vaex 中是否可以这样做吗?
是的,vaex 有一个名为
vrange
的函数,它可以完全满足您的需求,且不占用内存。
示例:
import vaex
df = vaex.example()
df
这是一个包含 330,000 行的数据框(使用撰写本文时的示例数据集)。我们可以使用
POLICY_ID
生成一个新列
vaex.vrange
df["POLICY_ID"] = vaex.vrange(0, len(df))