转换Pandas数据框,以便通过将一列中的变量与其他列的列名称合并来压缩行数

时间:2019-07-19 14:05:47

标签: python pandas dataframe

我有一个熊猫数据框,格式与以下数据框类似:

        data2 = [['A', 1, 1, "", "", 1, 1], ['B', 1, 1, 1, 1, "", ""],
                 ['C', 1, 1, 1, 1, 1, 1], ['D', 1, 1, 1, 1, "", ""],
                 ['E', 1, 1, "", "", 1, 1]]

        df2 = pd.DataFrame(data2, columns = ['Shortened', 'FColumn1',
                                             'FColumn2', 'GColumn1',
                                             'GColumn2', 'HColumn1',
                                             'HColumn2'])

   Shorten ColnameHolder  Colname1  Colname2
0        A             F         1         1
1        B             F         1         1
2        C             F         1         1
3        D             F         1         1
4        E             F         1         1
5        B             G         1         1
6        C             G         1         1
7        D             G         1         1
8        A             H         1         1
9        C             H         1         1
10       E             H         1         1

我想压缩列“ Shorten”,以便每个不同的值都有自己的行,并为ColnameHolder的值和列名Colname1的每个唯一组合创建新的列,并Colname2,其中Colname1Colname2的值按如下方式填充在新数据框中的正确位置:

        data2 = [['A', 1, 1, "", "", 1, 1], ['B', 1, 1, 1, 1, "", ""],
                 ['C', 1, 1, 1, 1, 1, 1], ['D', 1, 1, 1, 1, "", ""],
                 ['E', 1, 1, "", "", 1, 1]]

        df2 = pd.DataFrame(data2, columns = ['Shortened', 'FColname1',
                                             'FColname2', 'GColname1',
                                             'GColname2', 'HColname1',
                                             'HColname2'])

  Shortened  FColname1  FColname2 GColname1 GColname2 HColname1 HColname2
0         A          1          1                             1         1
1         B          1          1         1         1                    
2         C          1          1         1         1         1         1
3         D          1          1         1         1                    
4         E          1          1                             1         1

带有空字符串(或者我以后可以用空字符串替换的任何东西),在没有ColnameHolderColname1Colname2值的组合的列中Shortened列中的值。预先感谢您提供任何解决方案。

(侧面:我是Python的新手,因此,以更有效的方式构造上述数据框的任何技巧也将受到赞赏)

0 个答案:

没有答案