python - 根据 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]})
解决方案
尝试:
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
推荐阅读
- python - python中的正则表达式字符串显然很简单,但我怎样才能使它工作?
- flutter - Flutter:如何让孩子居中,但要限制它在边缘的一侧可以长多大
- java - 永久设置提示?
- swiftui - 如何将 CloudKit 数据直接传递到 Text() 而不是列表
- spacy - 未在 spacy 中加载的预训练向量
- python - 如何在python中的维基百科的某些页面中获取反向链接?
- awk - 使用文件中包含的字符串重命名 .txt 文件
- kubernetes - 我可以通过客户端 api 在 kubernetes 中同时创建多个作业吗?
- typescript - 赛普拉斯自动化项目使用打字稿?
- c - C“if”语句不打印输出