#python #for-loop
#python #for-цикл
Вопрос:
Здравствуйте, я новичок в 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:Python38libsite-packagespandascoreindexesbase.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 итеративно по циклу. пожалуйста, направьте меня
Комментарии:
1. Вы должны включить обратную трассировку или, по крайней мере, точную строку, которая вызвала исключение
2. Добавлена обратная трассировка
Ответ №1:
Если вы хотите выполнить итерацию по столбцам в фрейме данных и применить к каждому столбцу другой сдвиг Цезаря, вы можете сделать это:
for index,column in enumerate(df):
df[column]=df[column].apply(lambda x: pycrypt.caesar.encrypt(x,index))
print(df)