如何只在一个级别的大熊猫中建立小组

我要在excel文件中的df3数据框下方导入,并且只想进行grouby,名称和其余重复数据应反映如下。

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

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

如何只在一个级别的大熊猫中建立小组

,我希望在相同的formate中具有如下所示的输出。请帮助我,就像我在这里停留一样。

如何只在一个级别的大熊猫中建立小组

将非常乐意提供帮助和支持。

iCMS 回答:如何只在一个级别的大熊猫中建立小组

您可以通过实现

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]

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
,

这里有另一个解决方案,它使用列表组合和df.duplicated.loc进行分配。

import numpy as np
df = pd.read_excel(file,sheet_name=yoursheet)

#order the months. 

df['Month'] = pd.Categorical(df['Month'],pd.to_datetime(df['Month'],format='%b').drop_duplicates().sort_values().dt.strftime('%b'))



df = df.sort_values(['Month']).reset_index(drop=True)

df1 = pd.concat([data.append(data.iloc[0]) for name,data in df.groupby('Name')])

df1.loc[df1.duplicated(keep='last'),1:] = ''

df1['Name'] = np.where(df1['Month'].ne(''),df1['Month'],df1['Name'])

final = df1.drop('Month',1)

   Name ID Shift
0   Jon         
3   Jan  1     A
4   Feb  1     A
5   Feb  1     C
6   Mar  1     C
0   Jan  1     B
1  Mike         
2   Jan  1     B
1   Jan  1     A
,

代码

#creating sample data as per requirement
import pandas as pd 
df = pd.DataFrame({'Name':['Jon','Jon','Mike','Jon'],'ID':[1,1,1],'Month':['Feb','Jan','Mar','Feb','Jan'],'Shift':['A','B','C','A','A']})
#display data
df

enter image description here

df['Month'] = pd.Categorical(df['Month'],categories=['Jan','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],ordered=True)
df = df.sort_values(['Name','Month']).reset_index(drop=True)
#display final data
df

enter image description here

我希望这会有所帮助...:)

本文链接:https://www.f2er.com/2045048.html

大家都在问