我想将 DataFrame
的每三行转换为列。
输入:
import pandas as pd
df = pd.DataFrame({'a': [1,2,3,11,12,13],'b':['a','b','c','aa','bb','cc']})
print(df)
输出:
a b
0 1 a
1 2 b
2 3 c
3 11 aa
4 12 bb
5 13 cc
预期:
a1 a2 a3 b1 b2 b3
0 1 2 3 a b c
1 11 12 13 aa bb cc
最佳答案
使用set_index
通过楼层划分和模 3
与 unstack
并展平 MultiIndex
:
a = np.arange(len(df))
#if default index
#a = df.index
df1 = df.set_index([a // 3, a % 3]).unstack()
#python 3.6+ solution
df1.columns = [f'{i}{j + 1}' for i,j in df1.columns]
#python bellow 3.6
#df1.columns = ['{}{}'.format(i,j+1) for i,j in df1.columns]
print (df1)
a1 a2 a3 b1 b2 b3
0 1 2 3 a b c
1 11 12 13 aa bb cc
关于python - 如何将行转换为 Pandas 中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53580040/