我在Windows 10机器上使用Python 2.7和Pandas。将N个数据帧转换为3个列数据帧
我有由n个Dataframe
其中的n:
1)的索引表示人民名
2)列标题是按照相同的顺序
3)每个小区的相同人民名Dataframe
是他们每天互相发送电子邮件的平均次数。
如何将变换Dataframe
成Dataframe
与3列,其中:
1)第1列将是n的索引为n Dataframe
2)第2栏将是行标题用n在n Dataframe
3)第3列是由n个对应于从n的索引,列标题组合这两个名字的单元格的值Dataframe
编辑
适用于不提供我正在寻找的示例。我想从下面的代码中将df1转化为rel_df。
import pandas as pd
from itertools import permutations
df1 = pd.DataFrame()
df1['index'] = ['a', 'b','c','d','e']
df1.set_index('index', inplace = True)
df1['a'] = [0,1,2,3,4]
df1['b'] = [1,0,2,3,4]
df1['c'] = [4,1,0,3,4]
df1['d'] = [5,1,2,0,4]
df1['e'] = [7,1,2,3,0]
##df of all relationships to build
flds = pd.Series(SO_df.fld1.unique())
flds = pd.Series(flds.append(pd.Series(SO_df.fld2.unique())).unique())
combos = []
for L in range(0, len(flds)+1):
for subset in permutations(flds, L):
if len(subset) == 2:
combos.append(subset)
if len(subset) > 2:
break
rel_df = pd.DataFrame.from_records(data = combos, columns = ['fld1','fld2'])
rel_df['value'] = [1,4,5,7,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
print df1
>>> print df1
a b c d e
index
a 0 1 4 5 7
b 1 0 1 1 1
c 2 2 0 2 2
d 3 3 3 0 3
e 4 4 4 4 0
>>> print rel_df
fld1 fld2 value
0 a b 1
1 a c 4
2 a d 5
3 a e 7
4 b a 1
5 b c 1
6 b d 1
7 b e 1
8 c a 2
9 c b 2
10 c d 2
11 c e 2
12 d a 3
13 d b 3
14 d c 3
15 d e 3
16 e a 4
17 e b 4
18 e c 4
19 e d 4
请提供一个带有3-5行和预期输出的样本输入数据集 – MaxU