根据列值创建列 - 遍历列
create column based on column values - loop over column
我想创建一个新列“群组”。 “Step_ID”列中的整数值应在循环中从 1 转换为 4。请参见下图。
import pandas as pd
data = {'Step_ID': [1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11]}
df1 = pd.DataFrame(data)
尝试:
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
import pandas as pd
data = {'Step_ID': [1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11]}
df1 = pd.DataFrame(data)
# Need to subtract/add 1 so that you get 1-4 instead of 0-3
df1['group'] = ((df1['Step_ID'] - 1) % 4) + 1
df1
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
我想创建一个新列“群组”。 “Step_ID”列中的整数值应在循环中从 1 转换为 4。请参见下图。
import pandas as pd
data = {'Step_ID': [1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11]}
df1 = pd.DataFrame(data)
尝试:
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
import pandas as pd
data = {'Step_ID': [1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11]}
df1 = pd.DataFrame(data)
# Need to subtract/add 1 so that you get 1-4 instead of 0-3
df1['group'] = ((df1['Step_ID'] - 1) % 4) + 1
df1
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 |