首页 > 解决方案 > 有没有办法从单元格中创建新列并让它们的值来自另一列

问题描述

我正在尝试找到一种方法从 pandas DataFrame 中的一列获取信息,并将其唯一值作为新列,并将其分数作为新形成的列中的值。IE

指数 产品 测试 分数
0 一个 保护 5
1 一个 舒适 6
2 保护 6
3 舒适 7

最终结果是这样的:

指数 产品 保护 舒适 测试_C 测试_D
0 一个 5 6 2 1
1 6 7 3 8

我正在尝试这样做以清理我的数据,为机器学习做好准备。添加了 Test_C 和 Test_D 以表明不仅有 2 种类型的测试,而且根据执行的测试的产品不同而有所不同。

我曾尝试使用 Pandas.get_dummies 方法来做到这一点,但想知道是否有更清洁的方法来做到这一点。

标签: pythonpandasdata-cleaning

解决方案


使用pivot()

df.pivot(index = 'Product', columns = 'Test', values = 'Score')

回报:

Product Comfort Protection
A       6       5
B       7       6

如果您想拥有数字索引或将“产品”保留为列而不是索引,请添加reset_index()

df.pivot(index = 'Product', columns = 'Test', values = 'Score').reset_index()

回报:

    Product Comfort Protection
0   A       6       5
1   B       7       6

推荐阅读