Python 基于工作日从现有数据帧拆分并创建新数据帧
我需要根据工作日拆分数据帧,Python 基于工作日从现有数据帧拆分并创建新数据帧,python,pandas,pandas-groupby,data-science,Python,Pandas,Pandas Groupby,Data Science,我需要根据工作日拆分数据帧, 实际的数据帧如下所示 df = pd.DataFrame({'values': [10,5,30,44,52,6,7,85,9,1,1,1,13,14,1,16]}) df['weekdays'] = ['Monday','Tuesday','Wednesay','Thursday','Friday','saturday','sunday', 'Tuesday','Wednesay','Thursday','Friday','saturday','s
实际的数据帧如下所示
df = pd.DataFrame({'values': [10,5,30,44,52,6,7,85,9,1,1,1,13,14,1,16]})
df['weekdays'] = ['Monday','Tuesday','Wednesay','Thursday','Friday','saturday','sunday',
'Tuesday','Wednesay','Thursday','Friday','saturday','sunday',
'Monday','Tuesday','Wednesday']
values weekdays
0 10 Monday
1 5 Tuesday
2 30 Wednesay
3 44 Thursday
4 52 Friday
5 6 saturday
6 7 sunday
7 85 Tuesday
8 9 Wednesay
9 1 Thursday
10 1 Friday
11 1 saturday
12 13 sunday
13 14 Monday
14 1 Tuesday
15 16 Wednesday
如何根据工作日拆分数据框,如下图所示?我尝试将数据框拆分为每行7行,但这会添加消费周的数据,因此如何不添加消费周的数据并拆分数据框,如下图所示?提前谢谢你的帮助
新_df_1
新_df_2
新_df_3
使用++创建一个grouper
grp
,然后使用此grouper对数据帧进行分组,并使用dict理解将每个分组的帧存储在字典中:
grp = df['weekdays'].shift().eq('sunday').cumsum()
dfs = {f'df{k+1}': g for k, g in df.groupby(grp)}
结果:
print(dfs['df1'])
values weekdays
0 10 Monday
1 5 Tuesday
2 30 Wednesay
3 44 Thursday
4 52 Friday
5 6 saturday
6 7 sunday
print(dfs['df2'])
values weekdays
7 85 Tuesday
8 9 Wednesay
9 1 Thursday
10 1 Friday
11 1 saturday
12 13 sunday
print(dfs['df3'])
values weekdays
13 14 Monday
14 1 Tuesday
15 16 Wednesday
使用++创建一个grouper
grp
,然后使用此grouper对数据帧进行分组,并使用dict理解将每个分组的帧存储在字典中:
grp = df['weekdays'].shift().eq('sunday').cumsum()
dfs = {f'df{k+1}': g for k, g in df.groupby(grp)}
结果:
print(dfs['df1'])
values weekdays
0 10 Monday
1 5 Tuesday
2 30 Wednesay
3 44 Thursday
4 52 Friday
5 6 saturday
6 7 sunday
print(dfs['df2'])
values weekdays
7 85 Tuesday
8 9 Wednesay
9 1 Thursday
10 1 Friday
11 1 saturday
12 13 sunday
print(dfs['df3'])
values weekdays
13 14 Monday
14 1 Tuesday
15 16 Wednesday