gpt4 book ai didi

python - 通过重复序列填充列

转载 作者:行者123 更新时间:2023-12-04 10:15:09 25 4
gpt4 key购买 nike

我有一个如下所示的数据框,我想在重复模式中插入某些值(4 组)。这样我的数据框看起来像'df2'(显示在'df'下方)。我希望这种模式一直持续到行结束(在这种情况下是向下 10 行)。

df:

ID Descrip Code
1 NaN
2 3
3 4
4 7
5 NaN
6 11
7 NaN
8 20
9 22
10 15

df2:

ID Descrip Code
1 NaN MS
2 3 MU
3 4 MN
4 7 MO
5 NaN MS
6 11 MU
7 NaN MN
8 20 MO
9 22 MS
10 15 MU

最佳答案

我们可以使用 itertools.cycle map 这里:

from itertools import cycle

i = iter(['MS', 'MU', 'MN','MO'])
df['Code'] = df.index.map(dict(zip(df.index, cycle(i))))
print(df)

ID Descrip Code
0 1 NaN MS
1 2 3.0 MU
2 3 4.0 MN
3 4 7.0 MO
4 5 NaN MS
5 6 11.0 MU
6 7 NaN MN
7 8 20.0 MO
8 9 22.0 MS
9 10 15.0 MU

另一种方法, NumPy基于,将是 np.resize 序列到 df.shape[0] .请注意,如文档中所述,此方法使用输入数组的重复副本填充新数组:
a = np.array(['MS', 'MU', 'MN','MO'])
df['Code'] = np.resize(a, df.shape[0])

第一种方法的工作原理是创建一个将索引映射到序列的字典,其中迭代器刚刚根据需要循环多次以适合数据帧的 index。尺寸。这工作自 zip将组合来自两个迭代的元素,直到第一个用完,这将始终是非无限的,很明显:)
print(dict(zip(df.index, cycle(i))))
# {0: 'MS', 1: 'MU', 2: 'MN', 3: 'MO', 4: 'MS', 5: 'MU'...

然后我们可以通过将索引与创建的字典进行映射来将其分配给新列

关于python - 通过重复序列填充列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61097797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com