You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Colab中实现CSV原始数据与加密值同文件并排?

解决方法

你的问题核心是之前的代码加密了整个文件,而现在需要对每行原始数据单独加密,再和原始数据合并到同一CSV。用pandas可以轻松实现列的操作,以下是适配Google Colab的完整代码:

1. 安装依赖并初始化加密工具

!pip install cryptography

from cryptography.fernet import Fernet
import pandas as pd
from google.colab import files

# 生成密钥并保存(只需要运行一次)
key = Fernet.generate_key()
f = Fernet(key)

with open('filekey.key', 'wb') as filekey:
    filekey.write(key)

# 加载密钥(后续运行可以直接加载,不用重新生成)
with open('filekey.key', 'rb') as filekey:
    key = filekey.read()
f = Fernet(key)

2. 上传原始CSV并生成带加密列的文件

# 上传你的原始CSV文件(比如nba_org.csv)
uploaded = files.upload()

# 读取CSV到DataFrame
df = pd.read_csv('nba_org.csv')

# 对Column A的每个值加密,生成Column B
# 注意:加密后得到的是bytes类型,需要转成字符串才能存入CSV
df['Column B'] = df['Column A'].apply(lambda x: f.encrypt(str(x).encode()).decode())

# 保存合并后的CSV
output_filename = 'nba_with_encrypted.csv'
df.to_csv(output_filename, index=False)

# 下载结果文件
files.download(output_filename)

3. 解密验证(可选)

如果需要验证加密内容是否可正常解密,可以用以下代码:

# 上传刚才生成的带加密列的CSV
uploaded = files.upload()

# 读取文件
df_decrypt = pd.read_csv('nba_with_encrypted.csv')

# 对Column B的加密值解密,还原成原始内容
df_decrypt['Decrypted Column'] = df_decrypt['Column B'].apply(lambda x: f.decrypt(x.encode()).decode())

# 查看结果(可以对比原始Column A和解密后的值)
print(df_decrypt)

# 保存解密后的验证文件(可选)
df_decrypt.to_csv('nba_decrypted_verify.csv', index=False)
files.download('nba_decrypted_verify.csv')

关键说明

  • 之前的代码是加密整个文件的字节流,现在改为对每个单元格的内容单独加密,这样才能实现原始数据和加密值并排显示。
  • 加密后的bytes类型必须转成字符串(decode()),否则无法正常存入CSV文件;解密时需要先转回bytes(encode())再解密。
  • 密钥要妥善保存,没有密钥无法解密内容。

内容的提问来源于stack exchange,提问作者daza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 16:23:16