Python 无唯一列的透视数据帧

Python 无唯一列的透视数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我的数据框看起来像这样 df = index | A | B | C 0 |00456|text1|date1 1 |00443|text1|date2 2 |00456|text1|date3 3 |00231|text2|date4 4 |00231|text3|date1 5 |00456|text2|date1 我想以以下几点结束 df = index | Α | B_1 |B_2 |B_3 |C_1... 0

我的数据框看起来像这样

df = 
index | A   | B   | C
0     |00456|text1|date1
1     |00443|text1|date2
2     |00456|text1|date3
3     |00231|text2|date4
4     |00231|text3|date1
5     |00456|text2|date1
我想以以下几点结束

df =
index | Α   | B_1 |B_2  |B_3  |C_1...
0     |00456|text1|text1|text2|...
1     |00443|text1|NaN  |NaN  |...
2     |00231|text2|text3|NaN  |...
具有
\u 1
后缀或
NaN
值并不重要,我想要实现的是基于列A的内容将所有值放在同一行中

实现这一目标的最佳方式是什么

请注意,我使用了一种我认为过于复杂的方法来完成这项工作

groups = df.groupby(["A"])
df = pd.concat((groups.A.apply(lambda x: pd.Series(data=x.values)).unstack(),
                groups.B.apply(lambda x: pd.Series(data=x.values)).unstack(),
                groups.C.apply(lambda x: pd.Series(data=x.values)).unstack()),
                keys = ['A', 'B' 'C'], axis=1)
用于计数器,按和重塑,最后在列中展平多索引,并将索引转换为列:

g = df.groupby('A').cumcount() + 1
df1 = df.set_index(['A', g]).unstack()
df1.columns = [f'{a}_{b}' for a, b in df1.columns]
df1 = df1.reset_index()
print (df1)
     A    B_1    B_2    B_3    C_1    C_2    C_3
0  231  text2  text3    NaN  date4  date1    NaN
1  443  text1    NaN    NaN  date2    NaN    NaN
2  456  text1  text1  text2  date1  date3  date1

考虑到每个
B#
组中可能有许多
NaN
值,是否有办法将其向左移动?只要他们在同一组中,他们的位置就无关紧要。@ealiaj-不确定是否理解,是否可以更改您的问题的样本数据?我将其作为一个单独的问题添加