Это работает?
df = pd.DataFrame(
data=[['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']],
columns=['Name', 'ID', 'Month', 'Shift']
)
empty_rows = pd.DataFrame(
data=[[name, '', '', ''] for name in df['Name'].unique()],
columns=list(df)
)
df = pd.concat([df, empty_rows])
# this will need to be extended if you have additional months
df['Month'] = pd.Categorical(df['Month'], ['', 'Jan', 'Feb', 'Mar'])
df = df.set_index(['Name','Month']).sort_values(['Name', 'Month'])
Чтение в файле Excel:
df = pd.read_excel(
r'C:\Users\dell\Desktop\stats.xlsx',
sheet_name='Sheet5',
usecols=['Name', 'ID', 'Month', 'Shift']
)
person
kait
schedule
24.06.2020