Slo*_*ing 3 python dataframe pandas
我有一个示例数据框,其中包含 2 个指示列(下面的示例,产品和版本 - 其中版本号只能是 1 或 2)和包含实际数据的第三列。
product version data
a 1 8000
a 2 1000
b 1 4000
b 2 2000
c 1 9000
c 2 1000
d 1 2500
d 2 3000
Run Code Online (Sandbox Code Playgroud)
我试图操纵我的 df 以便代替上面的,我有 2 个数据列(比如 data1 和 data2),它们对应于该产品的版本(从而使版本列变得多余)。见下文:
product data1 data2
a 8000 1000
b 4000 2000
c 9000 1000
d 2500 3000
Run Code Online (Sandbox Code Playgroud)
有没有人能够就实现这一目标的简单解决方案提出建议?
您可以使用 pandas 函数旋转表格 .pivot
>>> result = df.pivot(index='product', columns='version', values='data').reset_index()
>>> result
version product 1 2
0 a 8000 1000
1 b 4000 2000
2 c 9000 1000
3 d 2500 3000
>>> result.index.name = None
>>> result.columns = ['product', 'data1', 'data2']
>>> result
product data1 data2
0 a 8000 1000
1 b 4000 2000
2 c 9000 1000
3 d 2500 3000
Run Code Online (Sandbox Code Playgroud)