【发布时间】:2021-11-20 17:03:30
【问题描述】:
我有一个 pandas 数据框,我想从中创建一些与文本相关的特征列。我还有一个计算这些特征的类。这是我的代码:
r = ReadabilityMetrics()
text_features = [['sentence_count', r.sentence_count], ['word_count', r.word_count], ['syllable_count', r.syllable_count], ['unique_words', r.unique_words],
['reading_time', r.reading_time], ['speaking_time', r.speaking_time], ['flesch_reading_ease', r.flesch_reading_ease], ['flesch_kincaid_grade', r.flesch_kincaid_grade],
['char_count', r.char_count]]
(df
.assign(**{t:df['description'].apply(f) for t, f in text_features})
)
我遍历 text_features 以动态创建列。
我的问题:如何删除对方法的引用并使text_features 更简洁?
例如,我想要text_features = ['sentence_count', 'word_count', 'syllable_count', ...],由于列名与函数名相同,因此动态引用函数。拥有一个嵌套列表似乎并不干燥,因此寻找更有效的实现。
【问题讨论】:
标签: python pandas lambda iteration list-comprehension