首页 > 解决方案 > 迭代 CSV 中的每一列并对每一列应用加密

问题描述

您好,我是 python 新手,我尝试将 pycrypt.caesar.encrypt(column_name,column_number) 函数应用于 CSV 中的每一列进行加密。我尝试过这样的事情

import pycrypt
import pandas as pd

df = pd.read_csv('test.csv')
print(df)
#col=df.columns
#print(col)
leng=range(len(df.columns))
print(leng)
j=0
for col in df.columns[0:,] and j in leng:
     #print(col)
     df['col']=df['col'].apply(lambda col: pycrypt.caesar.encrypt(col,j))
     print(df)

它抛出错误

Traceback (most recent call last):
File "C:/Users/kalya/AppData/Local/Temp/Pseudo.py/main.py", line 12, in 
<module>
for col in df.columns[0:,] and j in leng:
 File "C:\Python38\lib\site-packages\pandas\core\indexes\base.py", line 2419, 
 in __nonzero__
  raise ValueError(
ValueError: The truth value of a Index is ambiguous. Use a.empty, a.bool(), 
a.item(), a.any() or a.all().

我究竟做错了什么?我想通过循环迭代地加密 csv 中的所有列。请指导我

标签: pythonfor-loop

解决方案


如果要遍历数据框中的列并对每一列应用不同的 ceasar 移位,可以这样做:

for index,column in enumerate(df):
    df[column]=df[column].apply(lambda x: pycrypt.caesar.encrypt(x,index))

print(df)

推荐阅读