все
Предположим, у меня есть такой фрейм данных:
df1 = pd.DataFrame({"A": range(6), "key": [0,1]*3})
df1
A key
0 0 0
1 1 1
2 2 0
3 3 1
4 4 0
5 5 1
и
df2 = pd.DataFrame({"C": ["k0-"+str(x) for x in range(3)] + ["k1-"+str(x) for x in range(3)] , "key": [0]*3 + [1]*3}) k0-1
df2
C key
0 k0-0 0
1 k0-1 0
2 k0-2 0
3 k1-0 1
4 k1-1 1
5 k1-2 1
Все значения в C являются уникальными, а значения в key
У меня нет такого шаблона в реальном наборе данных.
Я пытаюсь объединить два с результирующим фреймом данных, где значения в столбце C будут взяты ровно один раз для совпадения значения в столбце key
.
Т.е.
A key C
0 0 0 k0-0
1 1 1 k1-0
2 2 0 k0-1
3 3 1 k1-1
4 4 0 k0-2
5 5 1 k1-2
Порядок не имеет значения, т.е. значения в C не должны приниматься последовательно. Это игрушечный пример, в реальности у меня ~ 10 ключей.
Я знаю, что, вероятно, могу выполнить внешнее соединение, а затем каким-то образом отбросить неуникальные значения C. Но это может быть излишним, так как в реальных наборах данных слишком много строк (~ 30k).
Заранее спасибо!