[英]how to use dataframe apply function with conditions
我有一个 dataframe 由两列 tweet 和 lang 组成。 我想根据每一行中的语言提取情绪。 语言在第二栏中精确。 我在英语中使用“TextBlob”,在德语中使用“TextBlobDE”。 我想将情绪 output 添加到另一列“主观性”。 为什么我不能使用这样的东西?:
df["subjectivity"] = df["tweet"].apply(
lambda tweet: TextBlob(tweet).sentiment.subjectivity
if df["lang"](tweet) == "en"
else TextBlobDE(tweet).sentiment.subjectivity
)
我收到这个错误
TypeError: 'Series' object is not callable
我想使用 dataframe 电源,这样我就不会遍历每一行我拥有的数据示例:
tweet,lang
Philadelphia House Cleaning Company Maid Service Direct Launches New Website,en
Boldecker Land fordert mit fünf Jahren Verspätung Geld aus der Kreisschulbaukasse an,de
这应该工作:
df.apply(
lambda row: TextBlob(row.tweet).sentiment.subjectivity
if row.lang == "en"
else TextBlobDE(row.tweet).sentiment.subjectivity,
axis=1
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.