场景
我的数据集的格式如下:
我称之为实际格式
uid iid rat tmp
196 242 3 881250949
186 302 3 891717742
22 377 1 878887116
244 51 2 880606923
166 346 1 886397596
298 474 4 884182806
115 265 2 881171488
253 465 5 891628467
305 451 3 886324817
6 86 3 883603013
在将其传递给其他函数(KMeans Clustering)时,它需要采用如下格式,这是我使用枢轴映射创建的:
我称之为矩阵格式
uid 1 2 3 4
4 4.3320762062 4.3407749532 4.3111995162 4.3411425423
5 4 3 2.1952622349 3.1913491995
6 4 3.4233243638 3.8255108621 3.948791424
7 4.4983411706 4.0477240538 4.0241460801 5
8 4.1773004578 4.0191412859 4.0442369862 4.1754642909
9 4.2733984521 4.2797130861 4.2682723131 4.2816986988
15 1 3.0554789259 3.2279546684 3.1282278957
16 5 4.3473697565 4.0675394438 5
问题:
现在,由于我需要将结果/矩阵格式数据再次传递给第一个算法,因此我需要将其转换为旧格式。
转换:
为了将 OLD 转换为 MATRIX 格式,我做了:
Pivot_Matrix = source_data.pivot(values='rat', index='uid', columns='iid')
我尝试反转和交换值以获得旧格式,但这显然失败了。有什么方法可以将 MATRIX 恢复为旧格式吗?
最佳答案
您需要stack
与 rename_axis
对于列名称和最后一个 reset_index
:
df = df.stack().rename_axis(('uid','iid')).reset_index(name='rat')
print (df.head())
uid iid rat
0 4 1 4.332076
1 4 2 4.340775
2 4 3 4.311200
3 4 4 4.341143
4 5 1 4.000000
关于python - 使用 Pandas Python 更改数据框中数据透视数据的数据格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47631087/