Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 基于列值创建列-在列上循环_Pandas_Loops_Calculated Columns - Fatal编程技术网

Pandas 基于列值创建列-在列上循环

Pandas 基于列值创建列-在列上循环,pandas,loops,calculated-columns,Pandas,Loops,Calculated Columns,我想创建一个新的专栏“Group”。列“Step_ID”中的整数值应在循环中从1转换为4。见下图 尝试: 输出: Step_ID Group 0 1 1 1 1 1 2 2 2 3 2 2 4 3 3 5 4 4 6 5 1 7 6 2 8 6 2 9

我想创建一个新的专栏“Group”。列“Step_ID”中的整数值应在循环中从1转换为4。见下图

尝试:

输出:

    Step_ID  Group
0         1      1
1         1      1
2         2      2
3         2      2
4         3      3
5         4      4
6         5      1
7         6      2
8         6      2
9         7      3
10        8      4
11        8      4
12        9      1
13       10      2
14       11      3
15       11      3
将熊猫作为pd导入
数据={'Step_ID':[1,1,2,2,3,4,5,6,6,7,8,8,9,10,11,11]}
df1=pd.DataFrame(数据)
#需要减/加1,这样得到的是1-4,而不是0-3
df1['group']=((df1['Step_ID']-1)%4)+1
df1
步骤ID 组 0 1. 1. 1. 1. 1. 2. 2. 2. 3. 2. 2. 4. 3. 3. 5. 4. 4. 6. 5. 1. 7. 6. 2. 8. 6. 2. 9 7. 3. 10 8. 4. 11 8. 4. 12 9 1. 13 10 2. 14 11 3. 15 11 3.
我不确定OP会如何处理边缘案件。如果Step_ID的值跳过一个数字(即[1,2,4]),此解决方案将把它与[1,2,3]一样处理,效果很好。谢谢。@Parsyk Np.)谢谢你的留言。但它没有按要求计算。将该表与您的结果和我的结果进行比较。对不起,我尝试重新检查该表,但我无法发现遗漏的值。你能给我介绍一下吗?谢谢。它现在工作得很好。
df['Group'] = (df.Step_ID % 4).replace(0 ,4)
    Step_ID  Group
0         1      1
1         1      1
2         2      2
3         2      2
4         3      3
5         4      4
6         5      1
7         6      2
8         6      2
9         7      3
10        8      4
11        8      4
12        9      1
13       10      2
14       11      3
15       11      3