如何将列表应用于更大的集合

时间:2019-05-22 19:27:34

标签: python pandas list

如何将x名称列表应用于等长(或数据帧行)的较大项列表?

我有一个x行的数据框,并且需要将一组y名称应用于该框。如何在数据框中分配相等长度的名称?

即对于df 10 rows长和3个名称,将name[0]应用于df row 0-3name[1]df 3-6;和names[2]df 6-9

我无法使用itertools循环,因为我需要按顺序(name[0]df row 0-3

我知道这是一个简单的任务,简直无法让我想到。谢谢。

2 个答案:

答案 0 :(得分:0)

pandas.cutlabels=参数一起使用:

  

将值绑定为离散间隔。当您需要将数据值分段并将其分类到bin中时,请使用cut。

     

labels:指定返回的标签   垃圾箱。

import pandas as pd
df = pd.DataFrame({"A": [1,2,3,4,5,6,7,8,9,10]})
l1 = "a", "b", "c"  # abc
df["B"] = pd.cut(range(len(df)), len(l1), labels=l1)

答案 1 :(得分:0)

import pandas as pd
import itertools

df = pd.DataFrame({"A": [1,2,3,4,5,6,7,8,9]})
l1 = ["a", "b", "c"]

dic = sorted(zip(df.A.index,itertools.cycle(l1)), key= lambda x: x[1])
df['B'] = [x[1] for x in dic]