如何从变量的单元格中提取信息并将其放入重复的行中?
How to extract information from the cell of a variable and put it inside duplicated row?
我有一个数据集 'UserID'
,用户 'System'
使用的系统以及这两者的串联。这是 data set 的示例:
RolCatBR_IDMqes1.loc[0:15]
UserID System CONCAT A
0 ANTANAS P1B_010, P2Z_010 P1B_010|ANTANAS
1 AWYGASC P1B_010, P2Z_010 P1B_010|AWYGASC
2 CHENQIA P1B_010, P2Z_010 P1B_010|CHENQIA
3 CHENQIA P3Z_020, P3Z_030 P3Z_020|CHENQIA
4 DBORZUT P1B_010, P2Z_010 P1B_010|DBORZUT
5 DURAKER P1B_010, P2Z_010 P1B_010|DURAKER
6 JEBINDE P1B_010, P2Z_010 P1B_010|JEBINDE
7 SMETTAN P1B_010, P2Z_010 P1B_010|SMETTAN
8 TKAUL13 P3Z_020, P3Z_030 P3Z_020|TKAUL13
9 VATERCH P3Z_020, P3Z_030 P3Z_020|VATERCH
10 ABUNNEN P2Z_010 P2Z_010|ABUNNEN
11 AMILSKI P2Z_010 P2Z_010|AMILSKI
12 ANMUE24 P2Z_010 P2Z_010|ANMUE24
13 BKAEPPL P2Z_010 P2Z_010|BKAEPPL
14 BRUDERA P2Z_010 P2Z_010|BRUDERA
15 CHRROMM P2Z_010 P2Z_010|CHRROMM
例如:第一行[0]
,我需要取出第二个系统-[=16=],创建具有相同UserID
的新行并放入系统信息- P2Z_010
已更新 CONCAT A
.
UserID System CONCAT A
0 ANTANAS P1B_010 P1B_010|ANTANAS
0.5 ANTANAS P2Z_010 P2Z_010|ANTANAS
1 AWYGASC P1B_010 P1B_010|AWYGASC
1.5 AWYGASC P2Z_010 P2Z_010|AWYGASC
我该怎么做?
这就是所谓的取消嵌套,我正在使用 str.split
和 str.len
以及 repeat
s=df['System'].str.split(',')
pd.DataFrame({'UserID':df.UserID.repeat(s.str.len()),'System':sum(s.tolist(),[]),'CONCATA':df.CONCATA.repeat(s.str.len())})
Out[531]:
CONCATA System UserID
0 P1B_010|ANTANAS P1B_010 ANTANAS
0 P1B_010|ANTANAS P2Z_010 ANTANAS
1 P1B_010|AWYGASC P1B_010 AWYGASC
1 P1B_010|AWYGASC P2Z_010 AWYGASC
2 P1B_010|CHENQIA P1B_010 CHENQIA
2 P1B_010|CHENQIA P2Z_010 CHENQIA
3 P3Z_020|CHENQIA P3Z_020 CHENQIA
3 P3Z_020|CHENQIA P3Z_030 CHENQIA
4 P1B_010|DBORZUT P1B_010 DBORZUT
4 P1B_010|DBORZUT P2Z_010 DBORZUT
5 P1B_010|DURAKER P1B_010 DURAKER
5 P1B_010|DURAKER P2Z_010 DURAKER
6 P1B_010|JEBINDE P1B_010 JEBINDE
6 P1B_010|JEBINDE P2Z_010 JEBINDE
7 P1B_010|SMETTAN P1B_010 SMETTAN
7 P1B_010|SMETTAN P2Z_010 SMETTAN
8 P3Z_020|TKAUL13 P3Z_020 TKAUL13
8 P3Z_020|TKAUL13 P3Z_030 TKAUL13
9 P3Z_020|VATERCH P3Z_020 VATERCH
9 P3Z_020|VATERCH P3Z_030 VATERCH
10 P2Z_010|ABUNNEN P2Z_010 ABUNNEN
11 P2Z_010|AMILSKI P2Z_010 AMILSKI
12 P2Z_010|ANMUE24 P2Z_010 ANMUE24
13 P2Z_010|BKAEPPL P2Z_010 BKAEPPL
14 P2Z_010|BRUDERA P2Z_010 BRUDERA
15 P2Z_010|CHRROMM P2Z_010 CHRROMM
我有一个数据集 'UserID'
,用户 'System'
使用的系统以及这两者的串联。这是 data set 的示例:
RolCatBR_IDMqes1.loc[0:15]
UserID System CONCAT A
0 ANTANAS P1B_010, P2Z_010 P1B_010|ANTANAS
1 AWYGASC P1B_010, P2Z_010 P1B_010|AWYGASC
2 CHENQIA P1B_010, P2Z_010 P1B_010|CHENQIA
3 CHENQIA P3Z_020, P3Z_030 P3Z_020|CHENQIA
4 DBORZUT P1B_010, P2Z_010 P1B_010|DBORZUT
5 DURAKER P1B_010, P2Z_010 P1B_010|DURAKER
6 JEBINDE P1B_010, P2Z_010 P1B_010|JEBINDE
7 SMETTAN P1B_010, P2Z_010 P1B_010|SMETTAN
8 TKAUL13 P3Z_020, P3Z_030 P3Z_020|TKAUL13
9 VATERCH P3Z_020, P3Z_030 P3Z_020|VATERCH
10 ABUNNEN P2Z_010 P2Z_010|ABUNNEN
11 AMILSKI P2Z_010 P2Z_010|AMILSKI
12 ANMUE24 P2Z_010 P2Z_010|ANMUE24
13 BKAEPPL P2Z_010 P2Z_010|BKAEPPL
14 BRUDERA P2Z_010 P2Z_010|BRUDERA
15 CHRROMM P2Z_010 P2Z_010|CHRROMM
例如:第一行[0]
,我需要取出第二个系统-[=16=],创建具有相同UserID
的新行并放入系统信息- P2Z_010
已更新 CONCAT A
.
UserID System CONCAT A
0 ANTANAS P1B_010 P1B_010|ANTANAS
0.5 ANTANAS P2Z_010 P2Z_010|ANTANAS
1 AWYGASC P1B_010 P1B_010|AWYGASC
1.5 AWYGASC P2Z_010 P2Z_010|AWYGASC
我该怎么做?
这就是所谓的取消嵌套,我正在使用 str.split
和 str.len
以及 repeat
s=df['System'].str.split(',')
pd.DataFrame({'UserID':df.UserID.repeat(s.str.len()),'System':sum(s.tolist(),[]),'CONCATA':df.CONCATA.repeat(s.str.len())})
Out[531]:
CONCATA System UserID
0 P1B_010|ANTANAS P1B_010 ANTANAS
0 P1B_010|ANTANAS P2Z_010 ANTANAS
1 P1B_010|AWYGASC P1B_010 AWYGASC
1 P1B_010|AWYGASC P2Z_010 AWYGASC
2 P1B_010|CHENQIA P1B_010 CHENQIA
2 P1B_010|CHENQIA P2Z_010 CHENQIA
3 P3Z_020|CHENQIA P3Z_020 CHENQIA
3 P3Z_020|CHENQIA P3Z_030 CHENQIA
4 P1B_010|DBORZUT P1B_010 DBORZUT
4 P1B_010|DBORZUT P2Z_010 DBORZUT
5 P1B_010|DURAKER P1B_010 DURAKER
5 P1B_010|DURAKER P2Z_010 DURAKER
6 P1B_010|JEBINDE P1B_010 JEBINDE
6 P1B_010|JEBINDE P2Z_010 JEBINDE
7 P1B_010|SMETTAN P1B_010 SMETTAN
7 P1B_010|SMETTAN P2Z_010 SMETTAN
8 P3Z_020|TKAUL13 P3Z_020 TKAUL13
8 P3Z_020|TKAUL13 P3Z_030 TKAUL13
9 P3Z_020|VATERCH P3Z_020 VATERCH
9 P3Z_020|VATERCH P3Z_030 VATERCH
10 P2Z_010|ABUNNEN P2Z_010 ABUNNEN
11 P2Z_010|AMILSKI P2Z_010 AMILSKI
12 P2Z_010|ANMUE24 P2Z_010 ANMUE24
13 P2Z_010|BKAEPPL P2Z_010 BKAEPPL
14 P2Z_010|BRUDERA P2Z_010 BRUDERA
15 P2Z_010|CHRROMM P2Z_010 CHRROMM