Pandas 无法将数据帧中的2列相乘以获得第3列
我有一个学生贷款的数据集。共有2列-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
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)
非常感谢,我的错误非常感谢,这很有效。