在这里,我有一些表格,列1:

时间:2019-04-23 09:31:37

标签: excel python-3.x pandas data-science

我是熊猫的新手,所以想根据excel文件寻求帮助。 在这里,我有第1列的工作表:

Index   Column1
1       PF7293 
2       NodeB Name=SN5208, LogicRNCID=106
3       KL5083
4       Label=DL7765A3U-2, CellID=28643, LogicRNCID=201

我想创建另一个column2,它应该包含column1中的一些单词,看起来像这样:

Index Column2
1     PF7293 
2     SN5208
3     KL5083
4     DL7765

在excel中,我们使用了MID。我想用熊猫做同样的事情。谢谢!


问题2

新工作表如下:

Column1    Column2 
KL7110     BTS works 
KS5007     BSS works 
KL5066     Planned works 
KL5147     Planned works 
KL5066     Unplanned work 
KL5077     Power work
KL5077     Power work 
AN9045     MW work 

我想从第2列中删除相同的值,作为第1列中的一个值。 例如,这里是列1中的2 KL5077,列2中的值相同,我想删除其中之一。 第二个问题是Column1中的2 KL5066在Column2中具有不同的值,在这种情况下,我想将Column2中的值放在一起,例如“计划中的工作/计划外的工作”。希望我已经解释清楚了))

1 个答案:

答案 0 :(得分:3)

您可以尝试Series.str.extract

df['Column2'] = df['Column1'].str.extract(r'([A-Z]{2}\d{4})')

这里的regex模式可以是“ 2个大写字母”后跟“ 4位数字”

[出]

   Index                                          Column1 Column2
0      1                                           PF7293  PF7293
1      2                NodeB Name=SN5208, LogicRNCID=106  SN5208
2      3                                           KL5083  KL5083
3      4  Label=DL7765A3U-2, CellID=28643, LogicRNCID=201  DL7765

更新

第二个问题:

1)要删除重复的行,请使用:

df.drop_duplicates(subset=['Column1', 'Column2'], inplace=True)

2)要连接多个“ Column2”值,请使用:

df_new = df.groupby('Column1')['Column2'].apply('/'.join).reset_index()

[出]

  Column1                       Column2
0  AN9045                       MW work
1  KL5066  Planned works/Unplanned work
2  KL5077                    Power work
3  KL5147                 Planned works
4  KL7110                     BTS works
5  KS5007                     BSS works