Как зашифровать и дешифровать pandas dataframe с помощью ключа дешифрования? - PullRequest
0 голосов
/ 31 августа 2018

У меня есть df с 300 столбцами, но есть один столбец ID, который я хочу зашифровать и разрешить кому-либо еще с ключом расшифровывать, если я дам им df как csv.

Возможно ли это?

Я знаю, как хэшировать столбец, но насколько я прочитал, я не могу его распаковать или дать кому-нибудь ключ, чтобы его распаковать.

Спасибо заранее.

редактировать:

df

id
1
2
3

@ Вэнь это хороший пример:

(1:2), (2:3),(3:4)

новый дф

id
2
3
4

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Я бы порекомендовал библиотеку python itsdangerous. Вот быстрый пример:

from itsdangerous import URLSafeSerializer

s = URLSafeSerializer('secret-key')

print(s.dumps([1, 2, 3, 4]))

# 'WzEsMiwzLDRd.wSPHqC0gR7VUqivlSukJ0IeTDgo'

print(s.loads('WzEsMiwzLDRd.wSPHqC0gR7VUqivlSukJ0IeTDgo'))

# [1, 2, 3, 4]

secret-key может использоваться совместно вами и другой доверенной стороной для расшифровки строк или столбцов.

Однако это зависит от сериализации , и некоторые типы данных Python нелегко сериализуются, но если вам просто нужно имя столбца или что-то в этом роде, это может работать хорошо.

0 голосов
/ 31 августа 2018

Я думаю, вы можете сделать это так

key=dict(zip(np.arange(len(df)),df.id))
df.id=np.arange(len(df))
**# for the person do not have the key**

df
Out[640]:
   id
0   0
1   1
2   2


**# for the person who havde the key**

df.id=df.id.map(key.get)

df
Out[642]: 
   id
0   1
1   2
2   3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...