Python 如果不重新创建分组数据帧,则无法多次使用子批次

Python 如果不重新创建分组数据帧,则无法多次使用子批次,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个如下所示的数据帧: X Z participantNum obsScenario startPos targetPos 16000 -16.0 -5.0 6950203 2 2 3 16001 -16.0 -5.0 6950203 2 2 3 16002 -16.0 -5.0 6950203

我有一个如下所示的数据帧:

          X    Z  participantNum  obsScenario  startPos  targetPos
16000 -16.0 -5.0         6950203            2         2          3
16001 -16.0 -5.0         6950203            2         2          3
16002 -16.0 -5.0         6950203            2         2          3
16003 -16.0 -5.0         6950203            2         2          3
16004 -16.0 -5.0         6950203            2         2          3
16005 -16.0 -5.0         6950203            2         2          3
16006 -16.0 -5.0         6950203            2         2          3
16007 -16.0 -5.0         6950203            2         2          3
16008 -16.0 -5.0         6950203            2         2          3
16009 -16.0 -5.0         6950203            2         2          3
我使用子图分别绘制每个分组变量组合的X,Z数据。Im使用以下代码来完成此操作:

fig, axs = plt.subplots(6,3)
grp = allDataF.groupby(['obsScenario', 'startPos', 'targetPos'])
for (group, allDataF), ax in zip(grp, axs.flat):
    ax.plot(allDataF.Z, allDataF.X, lw=0.3)
但是,在我第一次运行此代码之后,任何后续运行代码的时候,它都只打印第一个子批的数据,其余的则为空


我很确定这是因为grp变量,但我不确定如何更改代码以便可以多次运行(例如,更改绘图设置并重新运行以查看其外观,而无需重新运行所有内容).

问题可能是因为对于较大的数据帧和
groupby
中的数据帧,您使用了相同的变量名
allDataF

fig, axs = plt.subplots(6,3)
grp = allDataF.groupby(['obsScenario', 'startPos', 'targetPos'])

# change `allDataF` to `d`
for (group, d), ax in zip(grp, axs.flat):
    ax.plot(d.Z, d.X, lw=0.3)