python-3.x - 列中间的增量编号
问题描述
我有这样的数据框
0
1
2 Q1 A 1
3 Q1 A 2
4 Q1 A 3
5 Q1 A 4
6 Q1 A 5
7
8 Q2 A 1
9 Q2 A 2
10 Q2 A 3
11 Q2 A 4
12 Q2 A 5
13 Q2 A 6
14 Q2 A 7
15 Q2 A 9
16
17 Q3 V
18 Q3 V
19 Q3 V
20 Q3 V
21 Q3 V
22
23 Q4 A 1
24 Q4 A 2
25 Q4 A 3
26 Q4 A 4
27 Q4 A 5
28 Q4 A 6
29 Q4 A 7
30
31 Q5 A 1
32 Q5 A 2
33 Q5 A 3
34 Q5 A 4
35 Q5 A 5
36 Q5 A 6
37
38 Q6
39
40
41
42 Q7
43
44
45
46 Q8
47
48 Q9 V
49 Q9 V
50 Q9 V
51 Q9 V
52
53 Q10 A 1
54 Q10 A 2
55 Q10 A 3
56 Q10 A 4
57 Q10 A 5
58 Q10 A 6
59 Q10 A 7
60 Q10 A 8
61 Q10 A 9
62 Q10 A 10
63
64 Q11 V
65 Q11 V
66 Q11 V
67 Q11 V
68 Q11 V
69 Q11 V
70
71 Q12 A 1
72 Q12 A 2
73 Q12 A 3
74 Q12 A 4
75 Q12 A 5
76 Q12 A 6
77 Q12 A 7
我想要的是需要添加编号,例如Q1 A1
,Q1 A 2
到Q3 V 1
等等,Q3 V 2
所以如果字符串或单元格值包含,我想要的是按升序添加数值V
如果问题发生变化,我正在努力让逻辑停止编号并根据条件重新开始
我的预期输出如下
0
1
2 Q1 A 1
3 Q1 A 2
4 Q1 A 3
5 Q1 A 4
6 Q1 A 5
7
8 Q2 A 1
9 Q2 A 2
10 Q2 A 3
11 Q2 A 4
12 Q2 A 5
13 Q2 A 6
14 Q2 A 7
15 Q2 A 9
16
17 Q3 V 1
18 Q3 V 2
19 Q3 V 3
20 Q3 V 4
21 Q3 V 5
22
23 Q4 A 1
24 Q4 A 2
25 Q4 A 3
26 Q4 A 4
27 Q4 A 5
28 Q4 A 6
29 Q4 A 7
30
31 Q5 A 1
32 Q5 A 2
33 Q5 A 3
34 Q5 A 4
35 Q5 A 5
36 Q5 A 6
37
38 Q6
39
40
41
42 Q7
43
44
45
46 Q8
47
48 Q9 V 1
49 Q9 V 2
50 Q9 V 3
51 Q9 V 4
52
53 Q10 A 1
54 Q10 A 2
55 Q10 A 3
56 Q10 A 4
57 Q10 A 5
58 Q10 A 6
59 Q10 A 7
60 Q10 A 8
61 Q10 A 9
62 Q10 A 10
63
64 Q11 V 1
65 Q11 V 2
66 Q11 V 3
67 Q11 V 4
68 Q11 V 5
69 Q11 V 6
70
71 Q12 A 1
72 Q12 A 2
73 Q12 A 3
74 Q12 A 4
75 Q12 A 5
76 Q12 A 6
77 Q12 A 7
我怎么能在熊猫中做到这一点
解决方案
首先使用三列转换单列
df.dropna(inplace=True)
df = df.column.str.split(expand=True)
现在您的数据框将有 3 列 - 假设 Col_A、Col_B 和 Col_C,值将分别为 Q#、X、#。您可能需要更改以下代码中列的名称/索引。
df[2][0] = 1
for i in range(1,len(Col_A)+1):
if df[2][i].null():
if df[0][i].notnull() & df[1][i].notnull():
if (df[0][i] == df[0][i-1]) & (df[1][i] == df[1][i-1]):
df[2][i]= df[2][i-1] + 1
else:
df[2][i]=1
推荐阅读
- java - 如何修复 HIbernate 5.4.17 中的实体未映射错误?
- css - 如何使我的背景图像与@media screen 和 () 一起使用
- react-testing-library - 传递元素时,waitForElementToBeRemoved 超时
- angular - 如何比较两个冷 Observable 的源(而不是它们发出的潜在流)
- c++ - 将数据加载到 std::vector
有效率的 - flutter - 如何根据图像在颤动中创建动态容器
- flutter - Flutter - 未处理的异常:类型“(动态)=> Null”不是“f”类型“(字符串,动态)=> void”的子类型
- r - 如何在 R 中扩展 DATE 列?
- php - 为什么我的 PHP cURL 的 HTTP POST 请求不起作用?
- visual-studio-code - 无法让 Debugger for Chrome 工作,不支持配置的调试类型 pwa-chrome