如何根据pandas DataFrame某列的值创建并填充对应新列
将情感列转换为独热编码格式
可以用Pandas的两种常用方法实现需求,以下是具体步骤:
1. 构造初始DataFrame
首先还原你的输入数据:
import pandas as pd df = pd.DataFrame({ 'text': ['asdasda', 'fsdfsdfs', 'sdfsdfs', 'dfsdsd'], 'sentiment': ['positive', 'negative', 'neutral', 'mixed'] })
2. 方法一:使用pd.get_dummies(推荐)
这是最简便的方式,直接对sentiment列生成独热编码,再保留原text列:
# 生成独热编码,指定对sentiment列处理 result = pd.get_dummies(df, columns=['sentiment']) # 移除列名中的"sentiment_"前缀,匹配期望输出的列名 result.columns = ['text', 'positive', 'negative', 'neutral', 'mixed']
执行后result就是你要的格式:
text positive negative neutral mixed asdasda 1 0 0 0 fsdfsdfs 0 1 0 0 sdfsdfs 0 0 1 0 dfsdsd 0 0 0 1
3. 方法二:使用pd.crosstab
通过交叉表统计每个文本对应的情感类型,生成独热编码:
# 以text为行、sentiment为列生成交叉表 cross_tab = pd.crosstab(df['text'], df['sentiment']).reset_index() # 调整列顺序与期望输出一致 cross_tab = cross_tab[['text', 'positive', 'negative', 'neutral', 'mixed']]
这个方法同样能得到相同的结果,适合需要自定义行/列统计的场景。
内容的提问来源于stack exchange,提问作者math_guy_shy
相关产品推荐
相关产品推荐

