← 返回题库
初级

行业特定风险:零售业应收账款周转率分析

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - q074
行业特定风险:零售业应收账款周转率分析
"""

metadata = {
    "id": "q074",
    "title": "行业特定风险:零售业应收账款周转率分析",
    "module": "行业特定风险识别",
    "difficulty": "beginner",
    "data_files": ["operation.csv"],
    "skills": ["应收账款周转率", "零售业风险", "行业对标"],
    "estimated_minutes": 8
}

"""
【题目】
读取operation.csv,筛选2023年合并报表零售业(Indnme包含'零售')公司,
分析应收账款周转情况:

1. 应收账款周转率 = F060201B(operation.csv中应收账款周转率字段)
2. 应收账款周转天数 = 365 / 应收账款周转率
3. 输出应收账款周转天数最长(风险最高)的前10家

输出DataFrame,包含:Stkcd、ShortName、应收账款周转率(保留2位小数)、应收账款周转天数(保留1位小数)
"""

def solve():
    import pandas as pd
    from pyodide.http import open_url
    from io import StringIO

    BASE_URL = "https://data.zuihe.com/finance/"
    op = pd.read_csv(StringIO(open_url(BASE_URL + "operation.csv").read()))

    df = op[(op['Accper'] == '2023-12-31') & (op['Typrep'] == 'A')].copy()
    df = df[df['Indnme'].str.contains('零售', na=False)]
    df = df.dropna(subset=['F060201B', 'ShortName'])
    df = df[df['F060201B'] > 0]

    df['应收账款周转率'] = df['F060201B'].round(2)
    df['应收账款周转天数'] = (365 / df['应收账款周转率']).round(1)

    result = df.nlargest(10, '应收账款周转天数')[
        ['Stkcd', 'ShortName', '应收账款周转率', '应收账款周转天数']
    ].reset_index(drop=True)
    return result.to_string()

if __name__ == "__main__":
    print(solve())

示例

输入
solve()
期望输出
Empty DataFrame | Columns: [Stkcd, ShortName, 应收账款周转率, 应收账款周转天数] | Index: []
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码