我有一个熊猫数据框,格式与以下数据框类似:
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
,其中Colname1
和Colname2
的值按如下方式填充在新数据框中的正确位置:
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
带有空字符串(或者我以后可以用空字符串替换的任何东西),在没有ColnameHolder
和Colname1
或Colname2
值的组合的列中Shortened
列中的值。预先感谢您提供任何解决方案。
(侧面:我是Python的新手,因此,以更有效的方式构造上述数据框的任何技巧也将受到赞赏)