熊猫:在2个索引值之间随机划分索引值

时间:2019-03-12 16:10:34

标签: python pandas random series

这是“ ISO第53周问题”。

我有一个熊猫Series实例,其索引值代表ISO周编号:

import pandas as pd
ts = pd.Series([1,1,1,2,3,1,2], index=[1,1,2,2,52,53,53])

我想用index = 53index = 52随机且均等地替换所有index = 1索引。

对于上述情况,可能是:

import pandas as pd
ts = pd.Series([1,1,1,2,3,1,2], index=[1,1,2,2,52,52,1])

import pandas as pd
ts = pd.Series([1,1,1,2,3,1,2], index=[1,1,2,2,52,1,52])

例如。 请问我该怎么做?

感谢您的帮助。

编辑

在numpy中,我使用以下方法实现了这一目标:

from numpy import where
from numpy.random import shuffle

indices = where(timestamps == 53)[0]
number_of_indices = len(indices)
if number_of_indices == 0:
    return # no iso week number 53 to fix.
shuffle(indices) # randomly shuffle the indices.
midway_index = number_of_indices // 2
timestamps[indices[midway_index:]] = 52 # precedence if only 1 timestamp.
timestamps[indices[: midway_index]] = 1

其中timestamps数组是熊猫index的值。

0 个答案:

没有答案