Pandas 无法将数据帧中的2列相乘以获得第3列

Pandas 无法将数据帧中的2列相乘以获得第3列,pandas,dataframe,Pandas,Dataframe,我有一个学生贷款的数据集。共有2列- 违约风险敞口(以10万卢比计)-未偿贷款总额 回收率(%)-违约情况下可回收金额的可能性 我试图创建第三列-“恢复的金额”-但代码抛出错误 这是我的密码- df2 = pd.read_csv('Inferential Statistics - Student Loan.csv') df2.head() df2['Recovery (%)'] = df2['Recovery (%)'].apply(lambda x:x[:-1]) I have strippe

我有一个学生贷款的数据集。共有2列-

  • 违约风险敞口(以10万卢比计)-未偿贷款总额
  • 回收率(%)-违约情况下可回收金额的可能性 我试图创建第三列-“恢复的金额”-但代码抛出错误
  • 这是我的密码-

    df2 = pd.read_csv('Inferential Statistics - Student Loan.csv')
    df2.head()
    df2['Recovery (%)'] = df2['Recovery (%)'].apply(lambda x:x[:-1])
    I have stripped of the % from the **'Recovery (%)'** column and converted the column to float
    df2['Recovery (%)'].apply(np.float64)
    
    下面的代码不工作并引发错误-

        df2['Loss'] = df2['Exposure at Default (in lakh Rs.)'] * df2['Recovery (%)']
    
    TypeError:无法将序列与“float”类型的非整数相乘。

    文件的链接在这里-
    您需要保存转换:

    df2['Recovery(%)']=df2['Recovery(%)'].apply(np.64)
    
    然后数据类型将保持不变:

    df2['Loss'] = df2['Exposure at Default (in lakh Rs.)'] * df2['Recovery (%)']
    
    # 0       230.0000
    # 1         1.2240
    # 2         0.9944
    # 3        31.6249
    # 4        68.8448
    #           ...   
    # 9995    399.5601
    # 9996    703.5054
    # 9997    307.5720
    # 9998    907.7173
    # 9999      0.6765
    # Name: Loss, Length: 10000, dtype: float64
    

    你需要像这样分配
    df2['Recovery(%)'].apply(np.float64)
    回到
    df2['Recovery(%)]
    像这样分配
    df2['Recovery(%)]]=df2['Recovery(%)'].apply(np.float64)
    非常感谢,我的错误非常感谢,这很有效。