Python 通过将列转换为单列中包含的标签来重塑数据帧
我正在尝试将df打印到csv,以便稍后导出到Tableau可视化。我可以使用列的标签在Pandas中做我想做的事情,但是,为了在Tableau中轻松工作,我需要以特定的格式显示数据 这是我的朋友:Python 通过将列转换为单列中包含的标签来重塑数据帧,python,pandas,Python,Pandas,我正在尝试将df打印到csv,以便稍后导出到Tableau可视化。我可以使用列的标签在Pandas中做我想做的事情,但是,为了在Tableau中轻松工作,我需要以特定的格式显示数据 这是我的朋友: company size year Australia Canada Caribbean 1 USAA 315.0 1997 200.0 115.0 0 2 PIMCO 165.0 1997
company size year Australia Canada Caribbean
1 USAA 315.0 1997 200.0 115.0 0
2 PIMCO 165.0 1997 165.0 0.0 0
3 Swiss Re 18.0 1997 5.0 10.0 3.0
我想重新塑造它,使它看起来或多或少像这样:
company size year value value
1 USAA 315.0 1997 Australia 200.0
2 USAA 315.0 1997 Canada 115.0
3 PIMCO 165.0 1997 Australia 165.0
4 Swiss Re 18.0 1997 Australia 5.0
5 Swiss Re 18.0 1997 Canada 10.0
6 Swiss Re 18.0 1997 Caribbean 3.0
有没有一种方法可以在熊猫身上轻松做到这一点,而不需要创建多个GroupBy 我也遇到了类似的问题,在尝试了多种方法之后,这是我发现的最具python风格的方法:
df = pd.melt(df, id_vars=['company', 'size', 'year'])
df = df[df.value != 0]
希望能有帮助