индекс доступа строки данных - PullRequest
1 голос
/ 17 марта 2020

Я хочу удалить идентификатор столбца и создал два кадра данных, один из которых содержит уникальные строки, а другой содержит дублированные строки. Мой код ниже, я хочу добавить идентификатор столбца для каждого кадра данных (объединение).

d = {'id': ["i1", "i2", "i3", "i4", "i5"], 'x1': [13, 13, 61, 61, 61], 'x2': [10, 10, 13, 13, 13], 'x3': [12, 12, 2, 22, 2], 'x4': [24, 24, 9, 12, 9]}
df = pd.DataFrame(data=d)
del df['id']
dfduplicated = df[df.duplicated()]
dfUNIC= df.drop_duplicates(keep='first')

Ответы [ 2 ]

3 голосов
/ 17 марта 2020

Удалить id на drop и проверить дубликаты на DataFrame.duplicated, отфильтровать исходные данные по boolean indexing:

m = df.drop('id', axis=1).duplicated()
dfduplicated = df[m]
print (dfduplicated)
   id  x1  x2  x3  x4
1  i2  13  10  12  24
4  i5  61  13   2   9

Затем для использование обратной маски ~:

dfUNIC= df[~m]
print (dfUNIC)
   id  x1  x2  x3  x4
0  i1  13  10  12  24
2  i3  61  13   2   9
3  i4  61  13  22  12
0 голосов
/ 17 марта 2020

Я сделаю cumcount

s=df.groupby(list(set(df)-{'id'})).cumcount()
df1=df[s==0].copy()
df2=df.drop(df1.index)
df1
Out[113]: 
   id  x1  x2  x3  x4
0  i1  13  10  12  24
2  i3  61  13   2   9
3  i4  61  13  22  12
df2
Out[114]: 
   id  x1  x2  x3  x4
1  i2  13  10  12  24
4  i5  61  13   2   9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...