我在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