我已经做了下面的代码,它的工作很好,但我正在努力使更多的可读性和优化的代码,为此,我要取代我的代码列表理解,以取代所有的“如果条件”寻找情感类(在双**)。你知道吗
尝试将**代码优化为列表理解:
emotion_classes = ["Joy", "Fear", "Anger", "Surprise","Sadness", "Trust","Anticipation"]
[increaseCounterofJoy,increaseCounterofFear, for emotion in emotion_classes]
代码
for idx in range(len(df_split)):
iter_df = df_split[idx]
i = 0
final_df = pd.DataFrame(columns=("Date","Joy", "Fear", "Anger", "Surprise","Sadness", "Trust","Anticipation"))
for index, row in iter_df.iterrows():
**if iter_df["Emotion Class"] = "Joy":
row["Joy"] = +1
if iter_df["Emotion Class"] = "Fear":
row["Fear"] = +1
if iter_df["Emotion Class"] = "Anger":
row["Anger"] = +1
if iter_df["Emotion Class"] = "Surprise":
row["Surprise"] = +1
if iter_df["Emotion Class"] = "Sadness":
row["Sadness"] = +1
if iter_df["Emotion Class"] = "Trust":
row["Trust"] = +1
if iter_df["Emotion Class"] = "Anticipation":
row["Anticipation"] = +1**
final_df.loc[i] = row["Date"], row["Joy"], row["Fear"], row["Anger"], row["Surprise"], row["Sadness"], row["Trust"], row["Anticipation"]
i = i + 1
这不是一个列表理解有用的任务。只需使用传统的
for
循环:你的代码中有几个输入错误。在测试中使用
=
而不是==
。我假设您想要增加row
中的适当字段,而不是仅仅将它们设置为+1
。你知道吗也许是一张透视表?你知道吗
pm2ring的答案是可行的,但我想知道你是否能把它简化为:
相关问题 更多 >
编程相关推荐