如何将x
名称列表应用于等长(或数据帧行)的较大项列表?
我有一个x
行的数据框,并且需要将一组y
名称应用于该框。如何在数据框中分配相等长度的名称?
即对于df 10 rows
长和3个名称,将name[0]
应用于df row 0-3
; name[1]
至df 3-6
;和names[2]
至df 6-9
。
我无法使用itertools循环,因为我需要按顺序(name[0]
至df row 0-3
)
我知道这是一个简单的任务,简直无法让我想到。谢谢。
答案 0 :(得分:0)
将pandas.cut
与labels=
参数一起使用:
将值绑定为离散间隔。当您需要将数据值分段并将其分类到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]