Python 数据转换

Python Data Transformation

我有一个包含两列的数据集

如何使用Python转换成如下格式?

您可以在 Nameaggregate Sr Numbergroupby 作为列表,然后在 apply pd.Series 上创建行。

df = pd.DataFrame({'Sr Number':np.arange(1,12),'Name':['A']*3+['B']*2+['C']*4+['D']*2}).groupby('Name')['Sr Number'].agg(list).reset_index()
df['Instance'] = df.index + 1
df[[f'Row ID {i}' for i in range(1,len(df)+1)]] = df['Sr Number'].apply(pd.Series)
df = df[['Instance','Name','Row ID 1','Row ID 2','Row ID 3','Row ID 4']].replace(np.nan, '')

输出:

   Instance Name  Row ID 1  Row ID 2 Row ID 3 Row ID 4
0         1    A       1.0       2.0      3.0         
1         2    B       4.0       5.0                  
2         3    C       6.0       7.0      8.0      9.0
3         4    D      10.0      11.0