【问题标题】:Why apply function did not work on pandas dataframe为什么应用功能不适用于熊猫数据框
【发布时间】:2021-02-25 11:31:18
【问题描述】:
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 列标题名称及其值应为 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

【问题讨论】:

  • 这可能是一个简单的显示问题吗?什么显示ct_data.iloc[:, 1]
  • @SergeBallesta 它显示 IM 没有列请看,我添加了

标签: python pandas apply python-applymap


【解决方案1】:

这应该是一个注释,但它包含格式化的数据。

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

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 列现在变大了,您的系统无法再显示所有列,它会显示第一列和最后一列,中间带有省略号 (...) .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2013-02-28
    相关资源
    最近更新 更多