You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iloc中使用if语句?Loan_Tenure字段生成及筛选问题求助

解决贷款期限分类与数据筛选问题

1. 自定义函数生成Loan_Tenure字段

先写一个判断期限类别的函数,再用apply方法批量处理Loan_Term列:

def get_loan_tenure(term):
    if term < 120:
        return "Short"
    elif 120 <= term < 300:
        return "Medium"
    else:
        return "Long"

# 生成新字段
df_loans['Loan_Tenure'] = df_loans['Loan_Term'].apply(get_loan_tenure)

如果数据量较大,用numpy.select效率更高,写法如下:

import numpy as np

conditions = [
    df_loans['Loan_Term'] < 120,
    (df_loans['Loan_Term'] >= 120) & (df_loans['Loan_Term'] < 300),
    df_loans['Loan_Term'] >= 300
]
choices = ["Short", "Medium", "Long"]

df_loans['Loan_Tenure'] = np.select(conditions, choices)

2. 用loc筛选显示指定列

直接用loc指定全部行(用:)和目标列名即可:

# 显示所有行的Loan_Term和Loan_Tenure列
print(df_loans.loc[:, ['Loan_Term', 'Loan_Tenure']])

如果需要同时筛选特定行(比如只看Short期限的记录),可以这么写:

# 只显示Loan_Tenure为Short的行的指定列
print(df_loans.loc[df_loans['Loan_Tenure'] == 'Short', ['Loan_Term', 'Loan_Tenure']])

3. iloc中使用条件判断的方法

iloc是基于位置索引的,不能直接写if语句,得先提取满足条件的行的位置索引,再传入iloc:

# 先获取满足条件的行的位置(比如Loan_Term<120的行)
short_term_positions = df_loans[df_loans['Loan_Term'] < 120].index

# 用iloc取这些位置的指定列(可通过列名获取位置,避免硬编码)
term_col_idx = df_loans.columns.get_loc('Loan_Term')
tenure_col_idx = df_loans.columns.get_loc('Loan_Tenure')

print(df_loans.iloc[short_term_positions, [term_col_idx, tenure_col_idx]])

内容的提问来源于stack exchange,提问作者bhseah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:18:21