gpt4 book ai didi

Python:转换 pandas 数据框,使索引和列 id 成为行的元素

转载 作者:行者123 更新时间:2023-12-01 08:52:06 25 4
gpt4 key购买 nike

我发现这很难用语言表达,但基本上我想重新组织一个数据帧,使索引和列 ID 成为数据帧的元素。这是一个例子:

import numpy as np
import pandas as pd

# set seed
np.random.seed(420)
# make example dataframe
df1 = pd.DataFrame(data=np.random.randint(1, 9, size=(4,4)),
index=['a','b','c','d'], columns=['a','b','c','d'])

In [1]: df1
Out[1]:
a b c d
a 2 1 7 8
b 8 4 7 2
c 3 3 1 7
d 8 7 7 5

我想重新组织数据框,使其看起来像这样。

   id1  id2  value  
1 a a 2
2 a b 1
3 a c 7
4 a d 8
5 b a 8
6 b b 4
7 b c 7
8 b d 2
9 c a 3
10 c b 3
11 c c 1
12 c d 7
13 d a 8
14 d b 7
15 d c 7
16 d d 5

请随意编辑我的问题标题,以便它更好地反射(reflect)我的要求。正如我所说,我发现很难用语言来表达我想要做什么。谢谢!

最佳答案

使用stackreset_index :

df1 = df.stack().reset_index()
df1.columns = ['id1','id2','value']
print (df1)
id1 id2 value
0 a a 2
1 a b 1
2 a c 7
3 a d 8
4 b a 8
5 b b 4
6 b c 7
7 b d 2
8 c a 3
9 c b 3
10 c c 1
11 c d 7
12 d a 8
13 d b 7
14 d c 7
15 d d 5

Numpy 解决方案 numpy.repeat , numpy.tileravel :

a = np.repeat(df.index, len(df.columns))
b = np.tile(df.columns, len(df))
c = df.values.ravel()

df1 = pd.DataFrame({'id1':a,'id2':b,'value':c})

关于Python:转换 pandas 数据框,使索引和列 id 成为行的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53042652/

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