如何在python、pyspark或SQL中透视非数值和交叉连接

2024-04-27 09:21:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常复杂的问题。 这是我的桌子的样品

country     data_type   data_value    value
USA         aaa         1             0.5
USA         aaa         2             1
USA         aaa         3             1.5
USA         bbb         4             2
USA         bbb         5             2.5
USA         bbb         6             3
USA         ccc         zz            3.5
USA         ccc         xx            4
CAN         aaa         1             5
CAN         aaa         2             5.5
CAN         aaa         3             6
CAN         bbb         4             6.5
CAN         bbb         5             7
CAN         bbb         6             7.5
CAN         ccc         zz            8
CAN         ccc         xx            8.5

这就是我想要的结果

country  aaa  bbb  ccc  aaa_value  bbb_value  ccc_value
USA      1    4    zz   0.5        2          3.5
USA      2    4    zz   0.5        2          3.5
USA      3    4    zz   0.5        2          3.4
CAN      1    4    zz   5          6.5        8
CAN      2    4    zz   5          6.5        8
CAN      3    4    zz   5          6.5        8
.....

我试过了

pivot_table(
    index='country',
    columns = 'data type',
    values = ' data_value',
    aggfunc=lambda x: '   '.join(x)
)

但这并没有给我想要的

我更喜欢用python或pyspark来解决它。但是SQL也可以

aaa\u value中的值就是“value”列中的值

谢谢你


Tags: datavaluetypetable样品countrycanpivot