2 python pivot-table dataframe pandas
我有以下熊猫数据框。
ID Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9
1 A B C A B C A B C
2 D E F D E F D E F
Run Code Online (Sandbox Code Playgroud)
我想通过重组每三列值来获得下表。
ID Col_1 Col_2 Col_3
1 A B C
A B C
A B C
2 D E F
D E F
D E F
Run Code Online (Sandbox Code Playgroud)
或者
ID Col_1 Col_2 Col_3
1 A B C
1 A B C
1 A B C
2 D E F
2 D E F
2 D E F
Run Code Online (Sandbox Code Playgroud)
有什么有效的方法可以做到吗?我试图在 StackOverflow 社区中找到类似的例子,但没有找到。如果你有,你可以指点我。
任何帮助表示赞赏!
您可以使用DataFrame.stackwith MultiIndexby all 列而无需ID通过整数和模除法创建:
df = df.set_index('ID')
c = np.arange(len(df.columns))
df.columns = [c // 3, c % 3]
df1 = (df.stack()
.reset_index(level=1, drop=True)
.rename(columns= lambda x: f'Col_{x+1}')
.reset_index())
print (df1)
ID Col_1 Col_2 Col_3
0 1 A A A
1 1 B B B
2 1 C C C
3 2 D D D
4 2 E E E
5 2 F F F
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |