首页 > 解决方案 > 使用循环一次创建多个列

问题描述

我是在 python 中编写循环的新手,我想知道是否有人可以在这里帮助我。

我有一种情况,我需要创建两个新的颜色——极性和主观性。我有15 个评论列 ColA - Col O,我需要为其创建这些列,以便我可以从情绪分析开始。我这样做是通过以下方式:

#Sentiment analysis of all the comments for col A:
from textblob import TextBlob
data_account[['polarity_A', 'subjectivity_A']] = df['A'].apply(lambda Text: 
pd.Series(TextBlob(Text).sentiment))

#Sentiment analysis of all the comments for col B:
data_account[['polarity_B', 'subjectivity_B']] = 
data_account['B'].apply(lambda Text:pd.Series(TextBlob(Text).sentiment))

输出将如下所示:

A  B  polarity_A subjectivity_A polarity_B subjectivity_B

如何在此代码之上编写一个循环,以便我同时为所有 15 个评论列提供极性和主观性列?创建的新列应该有一个 '_C' 或 '_D' 等等,直到最后一个注释列 '_o'。

标签: python-3.xpandasloopsfor-loop

解决方案


假设data_account每个评论“字母”只包含一列:

for col in data_account.columns:
    data_account[[f"polarity_{col}", f"subjectivity_{col}"]] = data_account[col].apply(
        lambda Text: pd.Series(TextBlob(Text).sentiment)
    )

推荐阅读