具有相同值时如何拆分列?

时间:2019-05-08 13:10:30

标签: python pandas dataframe

我正在拆分数据框中的一列,该列具有相似的单词,但只有最后几个单词不同。我正在尝试将常用词拆分为一列,将不同的词拆分为另一列。

这是数据框的外观。

**Column1**   
InitialCharms::Charm::AAAAAA
InitialCharms::Charm::BBBBBB
InitialCharms::Charm::CCCCCC
InitialCharms::Charm::DDDDDD
InitialCharms::Charm::EEEEEE
InitialCharms::Charm::FFFFFF
InitialCharms::Charm::GGGGGG
InitialCharms::Charm::HHHHHH
InitialCharms::Charm::IIIIII
InitialCharms::Charm::JJJJJJ
InitialCharms::Charm::KKKKKK
InitialCharms::Charm::LLLLLL  

The Expected output:  

**Column1**              **Column2**  
InitialCharms             AAAAA  
InitialCharms             BBBBB  
InitialCharms             CCCCC  

我正在使用熊猫!

2 个答案:

答案 0 :(得分:3)

使用Series.str.split,并在必要时通过drop删除第二列:

df1 = df['Column1'].str.split('::', expand=True).drop(1, axis=1)

或者:

df1 = df['Column1'].str.split('::Charm::', expand=True)

df1.columns = ['Col1','Col2']
print (df1)
             Col1    Col2
0   InitialCharms  AAAAAA
1   InitialCharms  BBBBBB
2   InitialCharms  CCCCCC
3   InitialCharms  DDDDDD
4   InitialCharms  EEEEEE
5   InitialCharms  FFFFFF
6   InitialCharms  GGGGGG
7   InitialCharms  HHHHHH
8   InitialCharms  IIIIII
9   InitialCharms  JJJJJJ
10  InitialCharms  KKKKKK
11  InitialCharms  LLLLLL

答案 1 :(得分:2)

尝试一下

df['NewColumn1'] = df['Column1'].str.split('::').str[0]
df['NewColumn2'] = df['Column1'].str.split('::').str[-1]