为什么应用函数不适用于 pandas 数据框

Why apply function did not work on pandas dataframe

ct_data['IM NO'] = ct_data['IM NO'].apply(lambda x: pyffx.Integer(b'dkrya@Jppl1994', length=20).encrypt(int(x)))

我正在尝试加密这里是 ct_data

的头部下方
 Unnamed: 0      IM NO                                              CT ID
0           0  214281340  x1E5e3ukRyEFRT6SUAF6lg|d543d3d064da465b8576d87
1           1  214281244  -vf6738ee3bedf47e8acf4613034069ab0|aa0d2dac654
2           2  175326863  __g3d877adf9d154637be26d9a0111e1cd6|6FfHZRoiWs
3           3  299631931  __gbe204670ca784a01b7207b42a7e5a5d3|54e2c39cd3
4           4  214282320  773840905c424a10a4a31aba9d6458bb|__g1114a30c6e

但我得到如下

   Unnamed: 0  ...                                              CT ID
0            0  ...  x1E5e3ukRyEFRT6SUAF6lg|d543d3d064da465b8576d87
1            1  ...  aa0d2dac654d4154bf7c09f73faeaf62|-vf6738ee3bed
2            2  ...  6FfHZRoiWs2VO02Pruk07A|__g3d877adf9d154637be26
3            3  ...  54e2c39cd35044ffbd9c0918d07923dc|__gbe204670ca
4            4  ...  __g1114a30c6ea548a2a83d5a51718ff0fd|773840905c
5            5  ...  9e6eb976075b4b189ae7dde42b67ca3d|WgpKucd28IcdE

IM NO 列 header 名称及其值应为 20 位加密, 通常加密如下

import pyffx
strEncrypt = pyffx.Integer(b'dkrya@Jppl1994', length=20)
strEncrptVal = strEncrypt.encrypt(int('9digit IM No'))

ct_data.iloc[:, 1]) 显示下面的东西

0     214281340
1     214281244
2     175326863
3     299631931
4     214282320
5     214279026

这应该是评论,但它包含格式化数据。

这可能只是一个显示问题。使用你的数据框的初始样本,我已经执行了你的命令并打印了它的返回值:

print(ct_data['IM NO'].apply(lambda x: pyffx.Integer(b'dkrya@Jppl1994', length=20).encrypt(int(x))))

0    88741194526272080902
1     2665012251053580165
2    18983388112345132770
3    85666027666173191357
4    78253063863998100367
Name: IM NO, dtype: object

所以正确执行了。让我们更进一步:

ct_data['IM NO'] = ct_data['IM NO'].apply(lambda x: pyffx.Integer(b'dkrya@Jppl1994', length=20).encrypt(int(x)))
print(ct_data['IM NO'])

0    88741194526272080902
1     2665012251053580165
2    18983388112345132770
3    85666027666173191357
4    78253063863998100367
Name: IM NO, dtype: object

再次...

这意味着您的命令成功了,但是由于 IM NO 列现在变大了,您的系统无法再显示所有列,而是显示第一列和最后几列,并带有省略号 (...) 在中间。