反复将字符[ac]分配给Pandas Dataframe中的行,直到列长结束

d_kennetz

说我有一个具有以下结构的熊猫数据框:

      col1      col2
0     Jack      Jill
1  Michael     Micah
2  Derrick    Daliah
3   Martin    Martha
4  Patrick  Patricia
5   Dennis    Denise    

我有一个字符列表:

characters = ['a', 'b', 'c']

我想在数据框中创建一个新列,因此df具有以下结构(输出):

      col1      col2    label
0     Jack      Jill    a
1  Michael     Micah    b
2  Derrick    Daliah    c
3   Martin    Martha    a
4  Patrick  Patricia    b
5   Dennis    Denise    c

我以为可以通过遍历两个列表来做到这一点,但是只能将iteratres压缩到最短列表的长度:

for x,y in zip(df['col1', characters):
    print(y)

输出:

a
b
c

和一个嵌套的for循环:

for x in df['col1']:
    for y in characters:
        print(y)

在col1中为x中的每个名称打印每个字符(所以我得到Jack的a,b,c,获得Michael的a,b,c等)

如示例输出所示,如果一旦字符列表完成后我可以让字符重复迭代,则可以将它们附加到列表中,然后:

df['label'] = characters_list_for_df

任何帮助将是巨大的!

pp

您可以使用此配方将字符串重复到给定的长度:

def repeat_to_length(s, wanted):
    return (s * (wanted // len(s) + 1))[:wanted]

df['label'] = list(repeat_to_length('abc', len(df.index)))

print(df)

      col1      col2 label
0     Jack      Jill     a
1  Michael     Micah     b
2  Derrick    Daliah     c
3   Martin    Martha     a
4  Patrick  Patricia     b
5   Dennis    Denise     c

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章