python - 循环列表中的数据并将它们分配到数据帧的新列中,采用循环方法,直到数据帧的长度

标签 python list dataframe sorting

我有以下名为 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/

相关文章:

python - Python 和 MS Access VBA 之间 OLEDB/ODBC 的相反工作

python - PyQt:从 QWidget 双重继承时崩溃

scala - 将无效数据设置为 Spark DataFrames 中的缺失数据

python - 从数据框中提取共现数据

python - OpenCV 中的 PIL ImageChops.screen

python - 如何简化这个很长的 if 语句?

java - 将整数列表转换为字节数组

python - 字符串化列表到两个单独的列表

arrays - 计算列表中 k 个最大数字之和的有效方法?

python - 从 pandas、python 中的列表生成多个 csv 文件