我有以下名为 List_A 的列表
[A,B,C,D,E,F,G]
这必须在数据帧 df
中的新列(例如 col_new
)上循环。
分配需要采用循环方式,当然,一旦达到Dataframe的长度就应该停止。
我尝试了groupby.cumcount()
,但无法设置分配列表值的迭代次数限制。
df['col_new'] = (
List_A.repeat(df['Col_1'] / len(List_A)).sort_values(
key=lambda d: d.groupby(s).cumcount(),
kind='stable',
ignore_index=True,
)
)
最佳答案
你可以尝试:
from itertools import cycle
list_a = ['A','B','C','D','E','F','G']
df['col_new'] = df.apply(lambda _, c=cycle(list_a): next(c), axis=1)
print(df)
打印:
col1 col_new
0 1 A
1 2 B
2 3 C
3 4 D
4 5 E
5 6 F
6 7 G
7 8 A
8 9 B
9 10 C
关于python - 循环列表中的数据并将它们分配到数据帧的新列中,采用循环方法,直到数据帧的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75484795/