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

Python Pandas动态列赋值如何简化text_features定义

实现代码

直接通过Python内置的getattr()动态读取实例方法即可,不需要手动维护方法和列名的映射关系:

r = ReadabilityMetrics()
# 仅需维护特征名的字符串列表,和生成的列名、类方法名完全对应
text_features = [
    'sentence_count', 'word_count', 'syllable_count', 'unique_words',
    'reading_time', 'speaking_time', 'flesch_reading_ease',
    'flesch_kincaid_grade', 'char_count'
]

df = df.assign(**{
    feat: df['description'].apply(getattr(r, feat)) 
    for feat in text_features
})
补充说明
  • getattr(obj, 属性名)是Python内置函数,可以按字符串形式的属性名,动态获取对象的属性或方法,完全适配你列名和方法名一致的场景,后续新增/删除特征只需要修改text_features列表即可,符合DRY原则。
  • 如果你的ReadabilityMetrics类的方法支持直接传入整个字符串Series做批量计算,可以去掉apply进一步提升运行性能:
df = df.assign(**{
    feat: getattr(r, feat)(df['description'])
    for feat in text_features
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:27:04