HEP Demo¶
Here we show a plausible small workflow on a real excerpt of particle data.
[1]:
import akimbo.pandas
import pandas as pd
import awkward as ak
import dask_awkward as dak
[2]:
ds = dak.from_parquet("s3://ddavistemp/hpq/*.parquet", storage_options={"anon": True}).compute()
[3]:
ds.show(limit_rows=10, limit_cols=140)
[{run: 1, luminosityBlock: 13, event: 1201, MET: {pt: 19.5, phi: 3.1}, muons: [], gen: [{pt: 60.4, ...}, ...]},
{run: 1, luminosityBlock: 13, event: 1202, MET: {pt: 20.4, phi: -2.18}, muons: [{pt: 18.6, ...}, ...], gen: [{...}, ...]},
{run: 1, luminosityBlock: 13, event: 1203, MET: {pt: 28.8, phi: 2.62}, muons: [], gen: [{pt: 40.6, ...}]},
{run: 1, luminosityBlock: 13, event: 1204, MET: {pt: 4.42, phi: -0.206}, muons: [{pt: 26.7, ...}, ...], gen: [{...}, ...]},
{run: 1, luminosityBlock: 13, event: 1205, MET: {pt: 5.86, phi: 2.47}, muons: [{pt: 7.62, eta: ..., ...}], gen: [...]},
...,
{run: 1, luminosityBlock: 2801, event: 80097, MET: {pt: 17.6, phi: 2.15}, muons: [], gen: [{pt: 24, ...}, ...]},
{run: 1, luminosityBlock: 2801, event: 80098, MET: {pt: 15.5, phi: 0.718}, muons: [{pt: 18.6, ...}, ...], gen: [...]},
{run: 1, luminosityBlock: 2801, event: 80099, MET: {pt: 16.2, phi: -0.555}, muons: [{pt: 26.1, ...}, ...], gen: [...]},
{run: 1, luminosityBlock: 2801, event: 80100, MET: {pt: 18.8, phi: 0.657}, muons: [{pt: 30.4, ...}, ...], gen: [...]}]
[4]:
s = ak.to_arrow(ds, extensionarray=False).to_pandas(types_mapper=pd.ArrowDtype)
[5]:
s
[5]:
0 {'run': 1, 'luminosityBlock': 13, 'event': 120...
1 {'run': 1, 'luminosityBlock': 13, 'event': 120...
2 {'run': 1, 'luminosityBlock': 13, 'event': 120...
3 {'run': 1, 'luminosityBlock': 13, 'event': 120...
4 {'run': 1, 'luminosityBlock': 13, 'event': 120...
...
299678 {'run': 1, 'luminosityBlock': 2801, 'event': 8...
299679 {'run': 1, 'luminosityBlock': 2801, 'event': 8...
299680 {'run': 1, 'luminosityBlock': 2801, 'event': 8...
299681 {'run': 1, 'luminosityBlock': 2801, 'event': 8...
299682 {'run': 1, 'luminosityBlock': 2801, 'event': 8...
Length: 299683, dtype: struct<run: int64 not null, luminosityBlock: int64 not null, event: int64 not null, MET: struct<pt: double not null, phi: double not null> not null, muons: large_list<item: struct<pt: double not null, eta: double not null, phi: double not null, mass: double not null, charge: int64 not null> not null> not null, gen: large_list<item: struct<pt: double not null, eta: double not null, phi: double not null, pdgId: int64 not null> not null> not null>[pyarrow]
We can “unroll” the Series into a DataFrame by extracting columns that are primitive types (e.g. Series of ints or floats). We do this with the awkward accessor (.ak on the Series). In the accessor we have a to_columns method:
[6]:
df = s.ak.unpack()
[7]:
df
[7]:
| run | luminosityBlock | event | MET | muons | gen | |
|---|---|---|---|---|---|---|
| 0 | 1 | 13 | 1201 | {'pt': 19.49629020690918, 'phi': 3.09666585922... | [] | [{'pt': 60.43461608886719, 'eta': -0.782095849... |
| 1 | 1 | 13 | 1202 | {'pt': 20.397918701171875, 'phi': -2.180577278... | [{'pt': 18.583789825439453, 'eta': -0.17873963... | [{'pt': 18.733409881591797, 'eta': -0.17861033... |
| 2 | 1 | 13 | 1203 | {'pt': 28.81757164001465, 'phi': 2.61683297157... | [] | [{'pt': 40.565895080566406, 'eta': -0.33271655... |
| 3 | 1 | 13 | 1204 | {'pt': 4.415469169616699, 'phi': -0.2062562108... | [{'pt': 26.678863525390625, 'eta': -1.23002457... | [{'pt': 26.755929946899414, 'eta': -1.23014056... |
| 4 | 1 | 13 | 1205 | {'pt': 5.85665225982666, 'phi': 2.472323179244... | [{'pt': 7.621268272399902, 'eta': 2.1535851955... | [{'pt': 7.496843338012695, 'eta': 2.1539559364... |
| ... | ... | ... | ... | ... | ... | ... |
| 299678 | 1 | 2801 | 80096 | {'pt': 13.942445755004883, 'phi': -0.285923928... | [{'pt': 5.740289211273193, 'eta': -1.979136943... | [{'pt': 5.610562324523926, 'eta': -1.979978322... |
| 299679 | 1 | 2801 | 80097 | {'pt': 17.55270004272461, 'phi': 2.15474414825... | [] | [{'pt': 24.036447525024414, 'eta': 0.494034796... |
| 299680 | 1 | 2801 | 80098 | {'pt': 15.480612754821777, 'phi': 0.7176428437... | [{'pt': 18.630128860473633, 'eta': 0.646761536... | [{'pt': 18.798992156982422, 'eta': 0.646190226... |
| 299681 | 1 | 2801 | 80099 | {'pt': 16.163414001464844, 'phi': -0.555234909... | [{'pt': 26.122941970825195, 'eta': -1.98191392... | [{'pt': 25.94921112060547, 'eta': -1.981276035... |
| 299682 | 1 | 2801 | 80100 | {'pt': 18.839515686035156, 'phi': 0.6565476059... | [{'pt': 30.407604217529297, 'eta': 1.319252133... | [{'pt': 29.94283676147461, 'eta': 1.3189213275... |
299683 rows × 6 columns
[8]:
df.luminosityBlock
[8]:
0 13
1 13
2 13
3 13
4 13
...
299678 2801
299679 2801
299680 2801
299681 2801
299682 2801
Name: luminosityBlock, Length: 299683, dtype: int64[pyarrow]
[9]:
muons_series = df["muons"]
[10]:
muons_series
[10]:
0 []
1 [{'pt': 18.583789825439453, 'eta': -0.17873963...
2 []
3 [{'pt': 26.678863525390625, 'eta': -1.23002457...
4 [{'pt': 7.621268272399902, 'eta': 2.1535851955...
...
299678 [{'pt': 5.740289211273193, 'eta': -1.979136943...
299679 []
299680 [{'pt': 18.630128860473633, 'eta': 0.646761536...
299681 [{'pt': 26.122941970825195, 'eta': -1.98191392...
299682 [{'pt': 30.407604217529297, 'eta': 1.319252133...
Name: muons, Length: 299683, dtype: large_list<item: struct<pt: double not null, eta: double not null, phi: double not null, mass: double not null, charge: int64 not null> not null>[pyarrow]
[11]:
%%timeit
[len(x) for x in muons_series.tolist()]
2.38 s ± 7.01 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In akimbo world we have access to functions from the awkward-array API:
[12]:
%%timeit
muons_series.ak.num(axis=1)
922 μs ± 32 μs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
Big performance improvement with compiled awkward code over Python iteration!
[13]:
# ensure they give the same result
[len(x) for x in muons_series.tolist()] == muons_series.ak.num(axis=1).tolist()
[13]:
True
[14]:
n_muons = muons_series.ak.num(axis=1)
And we can use the results with other pandas analysis workflows…
[15]:
n_muons
[15]:
0 0
1 2
2 0
3 3
4 1
..
299678 2
299679 0
299680 2
299681 3
299682 4
Length: 299683, dtype: int64[pyarrow]
[16]:
df["n_muons"] = n_muons
[17]:
df
[17]:
| run | luminosityBlock | event | MET | muons | gen | n_muons | |
|---|---|---|---|---|---|---|---|
| 0 | 1 | 13 | 1201 | {'pt': 19.49629020690918, 'phi': 3.09666585922... | [] | [{'pt': 60.43461608886719, 'eta': -0.782095849... | 0 |
| 1 | 1 | 13 | 1202 | {'pt': 20.397918701171875, 'phi': -2.180577278... | [{'pt': 18.583789825439453, 'eta': -0.17873963... | [{'pt': 18.733409881591797, 'eta': -0.17861033... | 2 |
| 2 | 1 | 13 | 1203 | {'pt': 28.81757164001465, 'phi': 2.61683297157... | [] | [{'pt': 40.565895080566406, 'eta': -0.33271655... | 0 |
| 3 | 1 | 13 | 1204 | {'pt': 4.415469169616699, 'phi': -0.2062562108... | [{'pt': 26.678863525390625, 'eta': -1.23002457... | [{'pt': 26.755929946899414, 'eta': -1.23014056... | 3 |
| 4 | 1 | 13 | 1205 | {'pt': 5.85665225982666, 'phi': 2.472323179244... | [{'pt': 7.621268272399902, 'eta': 2.1535851955... | [{'pt': 7.496843338012695, 'eta': 2.1539559364... | 1 |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 299678 | 1 | 2801 | 80096 | {'pt': 13.942445755004883, 'phi': -0.285923928... | [{'pt': 5.740289211273193, 'eta': -1.979136943... | [{'pt': 5.610562324523926, 'eta': -1.979978322... | 2 |
| 299679 | 1 | 2801 | 80097 | {'pt': 17.55270004272461, 'phi': 2.15474414825... | [] | [{'pt': 24.036447525024414, 'eta': 0.494034796... | 0 |
| 299680 | 1 | 2801 | 80098 | {'pt': 15.480612754821777, 'phi': 0.7176428437... | [{'pt': 18.630128860473633, 'eta': 0.646761536... | [{'pt': 18.798992156982422, 'eta': 0.646190226... | 2 |
| 299681 | 1 | 2801 | 80099 | {'pt': 16.163414001464844, 'phi': -0.555234909... | [{'pt': 26.122941970825195, 'eta': -1.98191392... | [{'pt': 25.94921112060547, 'eta': -1.981276035... | 3 |
| 299682 | 1 | 2801 | 80100 | {'pt': 18.839515686035156, 'phi': 0.6565476059... | [{'pt': 30.407604217529297, 'eta': 1.319252133... | [{'pt': 29.94283676147461, 'eta': 1.3189213275... | 4 |
299683 rows × 7 columns
[18]:
df.query("n_muons >= 2")
[18]:
| run | luminosityBlock | event | MET | muons | gen | n_muons | |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 13 | 1202 | {'pt': 20.397918701171875, 'phi': -2.180577278... | [{'pt': 18.583789825439453, 'eta': -0.17873963... | [{'pt': 18.733409881591797, 'eta': -0.17861033... | 2 |
| 3 | 1 | 13 | 1204 | {'pt': 4.415469169616699, 'phi': -0.2062562108... | [{'pt': 26.678863525390625, 'eta': -1.23002457... | [{'pt': 26.755929946899414, 'eta': -1.23014056... | 3 |
| 9 | 1 | 13 | 1210 | {'pt': 23.15256118774414, 'phi': -1.3448100090... | [{'pt': 8.245718955993652, 'eta': 0.4933051466... | [{'pt': 8.270858764648438, 'eta': 0.4933516085... | 2 |
| 10 | 1 | 13 | 1211 | {'pt': 8.993561744689941, 'phi': -0.6995754837... | [{'pt': 40.31018829345703, 'eta': -1.591983556... | [{'pt': 40.29347610473633, 'eta': -1.591879606... | 2 |
| 11 | 1 | 13 | 1212 | {'pt': 11.699790000915527, 'phi': -2.898928403... | [{'pt': 41.209922790527344, 'eta': -1.75342404... | [{'pt': 40.541831970214844, 'eta': -1.75308358... | 3 |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 299677 | 1 | 2801 | 80095 | {'pt': 6.506622791290283, 'phi': -2.8128659725... | [{'pt': 26.82998275756836, 'eta': -1.692675352... | [{'pt': 23.990140914916992, 'eta': -1.70475649... | 5 |
| 299678 | 1 | 2801 | 80096 | {'pt': 13.942445755004883, 'phi': -0.285923928... | [{'pt': 5.740289211273193, 'eta': -1.979136943... | [{'pt': 5.610562324523926, 'eta': -1.979978322... | 2 |
| 299680 | 1 | 2801 | 80098 | {'pt': 15.480612754821777, 'phi': 0.7176428437... | [{'pt': 18.630128860473633, 'eta': 0.646761536... | [{'pt': 18.798992156982422, 'eta': 0.646190226... | 2 |
| 299681 | 1 | 2801 | 80099 | {'pt': 16.163414001464844, 'phi': -0.555234909... | [{'pt': 26.122941970825195, 'eta': -1.98191392... | [{'pt': 25.94921112060547, 'eta': -1.981276035... | 3 |
| 299682 | 1 | 2801 | 80100 | {'pt': 18.839515686035156, 'phi': 0.6565476059... | [{'pt': 30.407604217529297, 'eta': 1.319252133... | [{'pt': 29.94283676147461, 'eta': 1.3189213275... | 4 |
144474 rows × 7 columns
[19]:
df = df.query("n_muons >= 2")
[20]:
df.ak["MET", "phi"].groupby(df.luminosityBlock).min().sort_values()
[20]:
luminosityBlock
2143 -3.14158
594 -3.141542
2597 -3.141537
1453 -3.141512
1746 -3.141483
...
1799 -2.282698
1012 -2.273576
2059 -2.244525
47 -2.204018
958 -2.181129
Length: 2997, dtype: double[pyarrow]
[21]:
maybe_strange_lumiblock = int(df.ak["MET", "phi"].groupby(df.luminosityBlock).min().idxmax())
[22]:
maybe_strange_lumiblock
[22]:
958
[23]:
df[df.luminosityBlock == maybe_strange_lumiblock]
[23]:
| run | luminosityBlock | event | MET | muons | gen | n_muons | |
|---|---|---|---|---|---|---|---|
| 136194 | 1 | 958 | 95702 | {'pt': 9.32455062866211, 'phi': 0.053808707743... | [{'pt': 17.39313507080078, 'eta': -1.847270846... | [{'pt': 17.233966827392578, 'eta': -1.84710228... | 2 |
| 136195 | 1 | 958 | 95703 | {'pt': 15.678848266601562, 'phi': 1.0668007135... | [{'pt': 34.96195602416992, 'eta': 1.0815714597... | [{'pt': 34.21088790893555, 'eta': 1.0816322565... | 2 |
| 136196 | 1 | 958 | 95704 | {'pt': 10.801395416259766, 'phi': -1.883632421... | [{'pt': 40.85875701904297, 'eta': 1.5373326539... | [{'pt': 39.86746597290039, 'eta': 1.5372104644... | 5 |
| 136197 | 1 | 958 | 95705 | {'pt': 27.977304458618164, 'phi': -2.181129455... | [{'pt': 42.02450180053711, 'eta': 0.6413493156... | [{'pt': 42.0600471496582, 'eta': 0.64086186885... | 2 |
| 136198 | 1 | 958 | 95706 | {'pt': 44.71547317504883, 'phi': 2.52462005615... | [{'pt': 9.585787773132324, 'eta': -1.828484535... | [{'pt': 9.453995704650879, 'eta': -1.828184485... | 2 |
| 136202 | 1 | 958 | 95710 | {'pt': 4.6118950843811035, 'phi': -2.009603738... | [{'pt': 12.712407112121582, 'eta': 1.665425777... | [{'pt': 12.579483985900879, 'eta': 1.665357470... | 4 |
| 136204 | 1 | 958 | 95712 | {'pt': 10.901251792907715, 'phi': 1.6692819595... | [{'pt': 28.988916397094727, 'eta': 1.426161408... | [{'pt': 29.23183250427246, 'eta': 1.4259384870... | 2 |
| 136206 | 1 | 958 | 95714 | {'pt': 6.936832427978516, 'phi': 0.50806105136... | [{'pt': 33.164180755615234, 'eta': -1.03487014... | [{'pt': 33.692684173583984, 'eta': -1.03486096... | 4 |
| 136207 | 1 | 958 | 95715 | {'pt': 12.992511749267578, 'phi': 2.5144424438... | [{'pt': 42.73493957519531, 'eta': -1.897092819... | [{'pt': 41.00784683227539, 'eta': -1.897110700... | 3 |
| 136209 | 1 | 958 | 95717 | {'pt': 11.85525131225586, 'phi': -1.5537400245... | [{'pt': 8.502578735351562, 'eta': -1.390953898... | [{'pt': 8.506632804870605, 'eta': -1.391292810... | 2 |
| 136213 | 1 | 958 | 95721 | {'pt': 22.108491897583008, 'phi': 1.2742083072... | [{'pt': 39.634498596191406, 'eta': -2.17111086... | [{'pt': 39.1713752746582, 'eta': -2.1711895465... | 3 |
| 136214 | 1 | 958 | 95722 | {'pt': 39.396728515625, 'phi': -0.586968421936... | [{'pt': 37.014530181884766, 'eta': 0.539512038... | [{'pt': 36.64643096923828, 'eta': 0.5394459962... | 2 |
| 136217 | 1 | 958 | 95725 | {'pt': 28.107641220092773, 'phi': -2.061355113... | [{'pt': 28.529312133789062, 'eta': -1.92499852... | [{'pt': 28.674528121948242, 'eta': -1.92519390... | 2 |
| 136222 | 1 | 958 | 95730 | {'pt': 6.728403091430664, 'phi': 0.64055746793... | [{'pt': 44.686187744140625, 'eta': -0.29042178... | [{'pt': 44.80177307128906, 'eta': -0.290572881... | 4 |
| 136223 | 1 | 958 | 95731 | {'pt': 2.442694902420044, 'phi': 2.98343157768... | [{'pt': 74.63383483886719, 'eta': 0.2354883253... | [{'pt': 75.15045166015625, 'eta': 0.2356527149... | 2 |
| 136225 | 1 | 958 | 95733 | {'pt': 5.25895357131958, 'phi': 0.989695847034... | [{'pt': 13.540238380432129, 'eta': -0.96499544... | [{'pt': 13.687565803527832, 'eta': -0.96489042... | 3 |
| 136227 | 1 | 958 | 95735 | {'pt': 39.792320251464844, 'phi': -0.607204139... | [{'pt': 28.45280647277832, 'eta': 1.4398310184... | [{'pt': 28.934585571289062, 'eta': 1.439734458... | 2 |
| 136228 | 1 | 958 | 95736 | {'pt': 9.327455520629883, 'phi': -1.8331677913... | [{'pt': 33.318115234375, 'eta': -1.35030031204... | [{'pt': 34.288909912109375, 'eta': -1.35011303... | 2 |
| 136230 | 1 | 958 | 95738 | {'pt': 5.225285053253174, 'phi': 0.26599729061... | [{'pt': 5.74852991104126, 'eta': -1.5219720602... | [{'pt': 5.723165512084961, 'eta': -1.521689295... | 2 |
| 136231 | 1 | 958 | 95739 | {'pt': 19.77752113342285, 'phi': 2.56310439109... | [{'pt': 21.930816650390625, 'eta': 1.622602462... | [{'pt': 22.40825843811035, 'eta': 1.6232310533... | 4 |
| 136232 | 1 | 958 | 95740 | {'pt': 16.91146469116211, 'phi': 0.17997898161... | [{'pt': 57.63543701171875, 'eta': 0.6997669935... | [{'pt': 58.36896514892578, 'eta': 0.6996427178... | 3 |
| 136237 | 1 | 958 | 95745 | {'pt': 17.964941024780273, 'phi': 0.2798292934... | [{'pt': 21.472057342529297, 'eta': -0.14510136... | [{'pt': 21.377073287963867, 'eta': -0.14469610... | 2 |
| 136239 | 1 | 958 | 95747 | {'pt': 34.146915435791016, 'phi': -0.343910306... | [{'pt': 47.73208236694336, 'eta': -0.195875376... | [{'pt': 46.937984466552734, 'eta': -0.19632942... | 2 |
| 136241 | 1 | 958 | 95749 | {'pt': 60.79026794433594, 'phi': -1.1350969076... | [{'pt': 5.522252082824707, 'eta': -0.910994112... | [{'pt': 5.54920768737793, 'eta': -0.9106213450... | 2 |
| 136242 | 1 | 958 | 95750 | {'pt': 20.187013626098633, 'phi': 1.3756097555... | [{'pt': 37.732452392578125, 'eta': 2.046837806... | [{'pt': 36.122745513916016, 'eta': 2.046431303... | 2 |
| 136243 | 1 | 958 | 95751 | {'pt': 45.754146575927734, 'phi': -0.575200021... | [{'pt': 35.7652587890625, 'eta': 1.84004938602... | [{'pt': 35.632320404052734, 'eta': 1.839916348... | 2 |
| 136244 | 1 | 958 | 95752 | {'pt': 39.07128143310547, 'phi': 0.99168241024... | [{'pt': 57.12268829345703, 'eta': 1.2766863107... | [{'pt': 57.2701530456543, 'eta': 1.27632701396... | 4 |
| 136248 | 1 | 958 | 95756 | {'pt': 3.5609500408172607, 'phi': 2.7537925243... | [{'pt': 31.377283096313477, 'eta': -2.16292452... | [{'pt': 32.82319259643555, 'eta': -2.162747383... | 2 |
| 136249 | 1 | 958 | 95757 | {'pt': 9.218932151794434, 'phi': -2.0534968376... | [{'pt': 69.20734405517578, 'eta': -1.621163845... | [{'pt': 68.95838928222656, 'eta': -1.621161580... | 2 |
| 136252 | 1 | 958 | 95760 | {'pt': 18.948158264160156, 'phi': -1.723783731... | [{'pt': 15.97077465057373, 'eta': 1.2463308572... | [{'pt': 16.47576904296875, 'eta': 1.2466225624... | 2 |
| 136257 | 1 | 958 | 95765 | {'pt': 2.889784812927246, 'phi': 1.20234358310... | [{'pt': 4.265729904174805, 'eta': 1.9936699867... | [{'pt': 19.37196159362793, 'eta': 1.8591572046... | 2 |
| 136258 | 1 | 958 | 95766 | {'pt': 16.802858352661133, 'phi': -1.810781121... | [{'pt': 9.82548713684082, 'eta': 1.16541755199... | [{'pt': 9.746100425720215, 'eta': 1.1653298139... | 2 |
| 136261 | 1 | 958 | 95769 | {'pt': 24.222867965698242, 'phi': -0.425295323... | [{'pt': 34.92827606201172, 'eta': 0.3492964506... | [{'pt': 35.03514099121094, 'eta': 0.3486303985... | 2 |
| 136262 | 1 | 958 | 95770 | {'pt': 4.4938554763793945, 'phi': -0.196108326... | [{'pt': 32.37409591674805, 'eta': -0.309629142... | [{'pt': 33.08842468261719, 'eta': -0.309075087... | 2 |
| 136266 | 1 | 958 | 95774 | {'pt': 15.200396537780762, 'phi': -0.340379208... | [{'pt': 8.123419761657715, 'eta': -1.234412431... | [{'pt': 8.026605606079102, 'eta': -1.235345721... | 2 |
| 136267 | 1 | 958 | 95775 | {'pt': 8.26032829284668, 'phi': -0.23124067485... | [{'pt': 56.755157470703125, 'eta': 1.028796076... | [{'pt': 56.293296813964844, 'eta': 1.028779745... | 2 |
| 136268 | 1 | 958 | 95776 | {'pt': 13.11574649810791, 'phi': 1.36859905719... | [{'pt': 18.178020477294922, 'eta': -2.23843741... | [{'pt': 18.548580169677734, 'eta': -2.23823046... | 2 |
| 136269 | 1 | 958 | 95777 | {'pt': 25.982837677001953, 'phi': 0.6142482161... | [{'pt': 59.537254333496094, 'eta': -1.79875850... | [{'pt': 60.195823669433594, 'eta': -1.79869830... | 2 |
| 136272 | 1 | 958 | 95780 | {'pt': 6.408741474151611, 'phi': 1.24201548099... | [{'pt': 9.31895637512207, 'eta': -0.7859385609... | [{'pt': 9.313433647155762, 'eta': -0.786293327... | 2 |
| 136273 | 1 | 958 | 95781 | {'pt': 11.913872718811035, 'phi': 0.8305811882... | [{'pt': 36.297996520996094, 'eta': 1.849698901... | [{'pt': 37.235496520996094, 'eta': 1.849808931... | 4 |
| 136277 | 1 | 958 | 95785 | {'pt': 5.784417629241943, 'phi': 1.06288385391... | [{'pt': 5.388668060302734, 'eta': 0.8629760146... | [{'pt': 5.2818498611450195, 'eta': 0.863830327... | 2 |
| 136278 | 1 | 958 | 95786 | {'pt': 53.30470657348633, 'phi': 2.96238994598... | [{'pt': 46.658206939697266, 'eta': -2.09441971... | [{'pt': 47.01996994018555, 'eta': -2.094365358... | 2 |
| 136280 | 1 | 958 | 95788 | {'pt': 79.87776947021484, 'phi': 0.11870313435... | [{'pt': 13.233634948730469, 'eta': 1.643572211... | [{'pt': 13.423243522644043, 'eta': 1.643285036... | 4 |
| 136282 | 1 | 958 | 95790 | {'pt': 30.711828231811523, 'phi': 0.3528386950... | [{'pt': 20.057493209838867, 'eta': -1.47776961... | [{'pt': 33.98409652709961, 'eta': -1.472594022... | 3 |
| 136284 | 1 | 958 | 95792 | {'pt': 2.3940744400024414, 'phi': -0.816025972... | [{'pt': 6.69031286239624, 'eta': 1.60692858695... | [{'pt': 6.756163597106934, 'eta': 1.6070077419... | 2 |
| 136287 | 1 | 958 | 95795 | {'pt': 14.409249305725098, 'phi': 0.1069312840... | [{'pt': 3.9270830154418945, 'eta': -1.91549956... | [{'pt': 1.5912946462631226, 'eta': -0.62308007... | 3 |
| 136288 | 1 | 958 | 95796 | {'pt': 24.02878189086914, 'phi': -1.5590174198... | [{'pt': 10.37822437286377, 'eta': -0.442846536... | [{'pt': 10.33800983428955, 'eta': -0.442937105... | 2 |
| 136289 | 1 | 958 | 95797 | {'pt': 28.7943115234375, 'phi': 0.793956518173... | [{'pt': 8.992547988891602, 'eta': -1.181468605... | [{'pt': 8.802826881408691, 'eta': -1.181635737... | 4 |
| 136290 | 1 | 958 | 95798 | {'pt': 17.060649871826172, 'phi': 1.4013400077... | [{'pt': 53.44632339477539, 'eta': -1.892633676... | [{'pt': 51.28750991821289, 'eta': -1.892772078... | 2 |
| 136291 | 1 | 958 | 95799 | {'pt': 5.828614711761475, 'phi': 0.90214794874... | [{'pt': 5.276854038238525, 'eta': 1.5319671630... | [{'pt': 5.306309223175049, 'eta': 1.5308386087... | 2 |
[24]:
# save for further analysis
df[df.luminosityBlock == maybe_strange_lumiblock].to_parquet("strange.parquet")