gpt4 book ai didi

python - 折叠数据框枢轴到单行

转载 作者:行者123 更新时间:2023-11-28 20:14:45 26 4
gpt4 key购买 nike

我有一个元组列表,需要将其转换为单个数据框行,其中第一个元组项转换为列,第二个元组项转换为相应的值。这是我尝试过的:

数据:

[(0, 0.52776772063535005),
(4, 0.18798097301734626),
(6, 0.09831844955142259),
(5, 0.059519666448517437),
(3, 0.054459995937603152),
(9, 0.052905323520468818)]

将此数据视为测试,我尝试转换为数据框然后进行数据透视,但我无法将数据展平为一个记录。

test = pd.DataFrame.from_records(scores[0])
test.columns=['t1','t2']
t1 t2
0 0 0.527768
1 4 0.187981
2 6 0.098318
3 5 0.059520
4 3 0.054460
5 9 0.052905

test2 = test.pivot(index=None, columns='t1',values='t2')

t1         0        3         4        5         6         9
0 0.527768 NaN NaN NaN NaN NaN
1 NaN NaN 0.187981 NaN NaN NaN
2 NaN NaN NaN NaN 0.098318 NaN
3 NaN NaN NaN 0.05952 NaN NaN
4 NaN 0.05446 NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN 0.052905

而我想要的是排成一排:

 t1         0        3         4        5         6         9
0 0.527768 0.05446 0.187981 0.05952 0.098318 0.052905

有没有一种方法可以将数据透视表折叠成一行,而不是让我的数据跨多个索引?

最佳答案

您可以将索引更改为一个值

test.index=[0]*len(test)


test.pivot(index=None, columns='t1',values='t2')
Out[525]:
t1 0 3 4 5 6 9
0 0.527768 0.05446 0.187981 0.05952 0.098318 0.052905

或者使用bfill

test.pivot(index=None, columns='t1',values='t2').bfill().iloc[[0],:]
Out[532]:
t1 0 3 4 5 6 9
0 0.527768 0.05446 0.187981 0.05952 0.098318 0.052905

或者我们根据数据创建您的 df

pd.Series(dict(data)).to_frame().T
Out[555]:
0 3 4 5 6 9
0 0.527768 0.05446 0.187981 0.05952 0.098318 0.052905

关于python - 折叠数据框枢轴到单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48813800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com