Python-删除datafeame单元中的重复项

时间:2018-11-20 06:50:24

标签: python pandas numpy dataframe

我在datafrme结构中有一列:

df = pd.DataFrame({'Config': ['1A', '1A, 7A', '3C, 3C-7A', '1A, 3A, 1A-3A']})
print(df)

          Config
0             1A
1         1A, 7A
2      3C, 3C-7A
3  1A, 3A, 1A-3A

如果单元格中有XX-XX,请删除重复的上一项。
例如,在第2行和第3行中,将删除3C1A3A(或创建一个新列):

   Config
0      1A
1  1A, 7A
2   3C-7A
3   1A-3A

非常感谢。


更新的问题:

原始数据清单:

df = pd.DataFrame({'Config': ['1A', '1A, 7A', '3C, 3C-7A', '1A, 3A, 1A-3A', '5A, 3C-7A']})
df

          Config
0             1A
1         1A, 7A
2      3C, 3C-7A
3  1A, 3A, 1A-3A
4      5A, 3C-7A

目标:

      Config
0         1A
1     1A, 7A
2      3C-7A
3      1A-3A
4  5A, 3C-7A

说明:

第2行和第3行:
    3C3C-7A重复
    1A3A1A-3A重复
    因此请删除3C1A3A

在第4行中:     原因5A3C-7A中的值不重复,因此两个值5A3C-7A都保留。

1 个答案:

答案 0 :(得分:1)

如果您的数据遵循相同的位置,那么它将对您有用

df.loc[df['Config'].str.contains('-'),'Config']=df['Config'].str.split(',').str.get(-1)

输出:

   Config
0      1A
1  1A, 7A
2   3C-7A
3   1A-3A

说明:

它将值除以,并取其最后一个值,该值在系列中为-

EDIT-1

print df['Config'].str.split(', |-').apply(set)

Output:

0            {1A}
1        {1A, 7A}
2        {3C, 7A}
3        {1A, 3A}
4    {3C, 5A, 7A}