如何仅在一个级别中在 Pandas 中创建组

Man*_*mar 1 python python-3.x pandas pandas-groupby vscode-python

我在我的 excel 文件中导入下面的 df3 数据框,并且只想对 Name 和 rest dublicate 数据进行分组,如下所示。

注意(每个月的数据将按月添加。)

Df3 =pd.read_Excel('Data')
print (df3)      

Name    ID  Month   Shift

Jon     1   Feb     A
Jon     1   Jan     B
Jon     1   Mar     C
Mike    1   Jan     A
Mike    1   Jan     B
Jon     1   Feb     C
Jon     1   Jan     A
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我想在相同的格式中输出如下所示。请帮助我,就像我卡在这里一样。

在此处输入图片说明

将非常感谢您的帮助和支持。

WeN*_*Ben 5

你可以通过

df=df.iloc[pd.to_datetime(df.Month,format='%b').argsort()]
df=pd.concat([pd.DataFrame({'Month':[x] }).append(y).fillna('').append(pd.DataFrame(dict.fromkeys(y.columns,['']))) for x , y in df.groupby('Name')]).drop('Name',1).iloc[:-1]
Run Code Online (Sandbox Code Playgroud)
print(df)

 Month ID Shift
0   Jon         
1   Jan  1     B
6   Jan  1     A
0   Feb  1     A
5   Feb  1     C
2   Mar  1     C
0               
0  Mike         
3   Jan  1     A
4   Jan  1     B
Run Code Online (Sandbox Code Playgroud)