python - 如何将数据框更改为简单的数据框?
问题描述
我制作了一个 corr 数据框。
import pandas as pd
lst = [[1,2,3,4,5,6,7],
[10,15,20,25,50,55,60],
[20,50,1,4,29,351,1],
[-1,-20,-30,-45,-50,-55,-70]]
df = pd.DataFrame(lst, index = ['a','b','c','d']).T
corr = df.corr(method = 'pearson')
print(corr)
a b c d
a 1.000000 0.966282 0.347232 -0.983120
b 0.966282 1.000000 0.414710 -0.917002
c 0.347232 0.414710 1.000000 -0.247203
d -0.983120 -0.917002 -0.247203 1.000000
我想通过 apply 方法进行这样的更改。
a a 1.000000
a b 0.966282
a c 0.347232
a d 0.983120
b a 0.966282
b b 1.000000
....
如何使用 apply 函数转换此数据框?
解决方案
pandas.DataFrame.unstack()
与 一起使用reset_index
:
corr.unstack().reset_index()
输出:
level_0 level_1 0
0 a a 1.000000
1 a b 0.966282
2 a c 0.347232
3 a d -0.983120
4 b a 0.966282
5 b b 1.000000
6 b c 0.414710
7 b d -0.917002
8 c a 0.347232
9 c b 0.414710
10 c c 1.000000
11 c d -0.247203
12 d a -0.983120
13 d b -0.917002
14 d c -0.247203
15 d d 1.000000
推荐阅读
- sql - 选择具有一定数量字母的列,顶部有潜在数字(SQL)
- python - 无法启动 jupyter 内核 python vscode 的会话
- javascript - Vue.js - 在 Vue 中数据库中的值更改后,值不会更新或消失
- azure-cosmosdb - 如何使用 gremlin API 在 Cosmos DB 上进行批量查询操作
- javascript - 我想在购物车中添加产品而不使用 AJAX 和 Django 刷新页面
- anylogic - AnyLogic:如何将一个代理分解为两个或多个新代理?
- html - 为什么 BODY 标签不覆盖 HTML 标签属性?
- networking - 我可以使用 PCIe 在两台 PC 之间进行通信以实现高传输速度,如果可能的话,我该如何通信?
- excel - 使用不同的参数多次调用 VBA 宏
- laravel - 使用 facebook 与 laravel 共享