首页 > 解决方案 > 根据 Pandas 数据框列中的值创建包含指定范围的新列

问题描述

请考虑以下数据框:

df = pd.DataFrame({"col":[0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0]})

我想指定值的范围,例如:

0 : range(0,6)
1 : range(6, 11)

这样我就有了输出数据框:

df = pd.DataFrame({"col":[0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0],
                  "val":[0, 1, 2, 3, 6, 7, 8, 9, 10, 0, 1, 2]})

标签: pythondataframe

解决方案


尝试:

b = pd.DataFrame({"col":[0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0]})

rngd={ 0:list(range(0,6)), 1:list(range(6, 11))}

l=[]
j=0

for i in range(len(b['col'])):
  if i==0 or b['col'][i]==b['col'][(i-1)] :
    l.append(rngd[b['col'][i]][j])
  


  else:
    j=0
    l.append(rngd[b['col'][i]][j])
  j+=1

推荐阅读