作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
应用一种热编码后如何聚合结果?以下是我的示例数据
df= pd.DataFrame([
['apple','sweet'],
['apple','affordable'],
['apple','fruit'],
['orange','fruit'],
['orange','soup'],
['orange','cheap'],
['orange','sweet'],
['soda','sweet'],
['soda','cheap'],
['soda','softdrinks']
])
df= df.rename(columns={0: "productName", 1: "itemFeatures"})
我已经尝试过了
df_ohe = pd.get_dummies(df['itemFeatures'])
df_ohe_merged = pd.concat([df, df_ohe],axis='columns')
df_final = df_ohe_merged.drop(['itemFeatures'],axis='columns')
如何获得如下所需的输出?或者有更好的方法吗?
desired_output = pd.DataFrame([
['apple',1,0,0,1,0,0,1],
['orange',0,1,0,1,0,1,1],
['soda',0,0,1,0,1,0,1]
])
desired_output = desired_output.rename(columns={0: "productName",
1: "affordable",
2: "cheap",
3: "famous",
4: "fruit",
5: "softdrinks",
6: "sour",
7: "sweet",
})
非常感谢
最佳答案
new_df = pd.crosstab(df['productName'],df['itemFeatures'],colnames = [None]).reset_index()
另一种方法是DataFrame.pivot_table
new_df = (df.pivot_table(index = 'productName',
columns = 'itemFeatures',
aggfunc = 'size',
fill_value = 0)
.reset_index()
.rename_axis (columns = None))
print(new_df)
productName affordable cheap fruit softdrinks soup sweet
0 apple 1 0 1 0 0 1
1 orange 0 1 1 0 1 1
2 soda 0 1 0 1 0 1
关于python - 如何在一次热编码后聚合行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59937072/
我是一名优秀的程序员,十分优秀!