Pandas:将行旋转到以列为列行的列
Pandas: pivoting rows to columns with columns as column-row
我有一个看起来像这样的数据框
df = pd.DataFrame({'A': [1,2,3], 'B': [11,12,13]})
df
A B
0 1 11
1 2 12
2 3 13
我想创建以下数据框,其中列是每个列-行的组合
A0 A1 A2 B0 B1 B2
0 1 2 3 11 12 13
似乎 pivot 和 transpose 函数会切换列和行,但实际上我想将数据框展平为一行。我怎样才能做到这一点?
IIUC
s=df.stack().sort_index(level=1).to_frame(0).T
s.columns=s.columns.map('{0[1]}{0[0]}'.format)
s
A0 A1 A2 B0 B1 B2
0 1 2 3 11 12 13
一个选项,pivot_wider:
# pip install pyjanitor
import janitor
import pandas as pd
df.index = [0] * len(df)
df = df.assign(num=range(len(df)))
df.pivot_wider(names_from="num", names_sep = "")
A0 A1 A2 B0 B1 B2
0 1 2 3 11 12 13
我有一个看起来像这样的数据框
df = pd.DataFrame({'A': [1,2,3], 'B': [11,12,13]})
df
A B
0 1 11
1 2 12
2 3 13
我想创建以下数据框,其中列是每个列-行的组合
A0 A1 A2 B0 B1 B2
0 1 2 3 11 12 13
似乎 pivot 和 transpose 函数会切换列和行,但实际上我想将数据框展平为一行。我怎样才能做到这一点?
IIUC
s=df.stack().sort_index(level=1).to_frame(0).T
s.columns=s.columns.map('{0[1]}{0[0]}'.format)
s
A0 A1 A2 B0 B1 B2
0 1 2 3 11 12 13
一个选项,pivot_wider:
# pip install pyjanitor
import janitor
import pandas as pd
df.index = [0] * len(df)
df = df.assign(num=range(len(df)))
df.pivot_wider(names_from="num", names_sep = "")
A0 A1 A2 B0 B1 B2
0 1 2 3 11 12 13