ERCOT API Examples#

import datetime

from gridstatus.ercot_api.ercot_api import describe_one_endpoint, hit_ercot_api, list_all_endpoints

Step 0: List All Endpoints#

Each endpoint is keyed by a unique string, first a “tag” (i.e. “np3-910-er”) and then a descriptor (i.e. “2 Day Aggregated Generation Summary”), each preceded by a forward slash. The list_all_endpoints method will enumerate all of these endpoint strings with a summary description, so you can find the precise key for the endpoint you are interested in!

list_all_endpoints()
/np3-233-cd/hourly_res_outage_cap
    Hourly Resource Outage Capacity
/np3-565-cd/lf_by_model_weather_zone
    Seven-Day Load Forecast by Model and Weather Zone
/np3-566-cd/lf_by_model_study_area
    Seven-Day Load Forecast by Model and Study Area
/np3-910-er/2d_agg_dsr_loads
    2 Day Aggregated DSR Loads
/np3-910-er/2d_agg_gen_summary
    2 Day Aggregated Generation Summary
/np3-910-er/2d_agg_gen_summary_houston
    2 Day Aggregated Generation Summary Houston
/np3-910-er/2d_agg_gen_summary_north
    2 Day Aggregated Generation Summary North
/np3-910-er/2d_agg_gen_summary_south
    2 Day Aggregated Generation Summary South
/np3-910-er/2d_agg_gen_summary_west
    2 Day Aggregated Generation Summary West
/np3-910-er/2d_agg_load_summary
    2 Day Aggregated Load Summary
/np3-910-er/2d_agg_load_summary_houston
    2 Day Aggregated Load Summary Houston
/np3-910-er/2d_agg_load_summary_north
    2 Day Aggregated Load Summary North
/np3-910-er/2d_agg_load_summary_south
    2 Day Aggregated Load Summary South
/np3-910-er/2d_agg_load_summary_west
    2 Day Aggregated Load Summary West
/np3-910-er/2d_agg_out_sched
    2 Day Aggregated Output Schedule
/np3-910-er/2d_agg_out_sched_houston
    2 Day Aggregated Output Schedule Houston
/np3-910-er/2d_agg_out_sched_north
    2 Day Aggregated Output Schedule North
/np3-910-er/2d_agg_out_sched_south
    2 Day Aggregated Output Schedule South
/np3-910-er/2d_agg_out_sched_west
    2 Day Aggregated Output Schedule West
/np3-911-er/2d_agg_as_offers_ecrsm
    2 Day Aggregated Ancillary Service Offers ECRSM
/np3-911-er/2d_agg_as_offers_ecrss
    2 Day Aggregated Ancillary Service Offers ECRSS
/np3-911-er/2d_agg_as_offers_offns
    2 Day Aggregated Ancillary Service Offers OFFNS
/np3-911-er/2d_agg_as_offers_onns
    2 Day Aggregated Ancillary Service Offers ONNS
/np3-911-er/2d_agg_as_offers_regdn
    2 Day Aggregated Ancillary Service Offers REGDN
/np3-911-er/2d_agg_as_offers_regup
    2 Day Aggregated Ancillary Service Offers REGUP
/np3-911-er/2d_agg_as_offers_rrsffr
    2 Day Aggregated Ancillary Service Offers RRSFFR
/np3-911-er/2d_agg_as_offers_rrspfr
    2 Day Aggregated Ancillary Service Offers RRSPFR
/np3-911-er/2d_agg_as_offers_rrsufr
    2 Day Aggregated Ancillary Service Offers RRSUFR
/np3-911-er/2d_cleared_dam_as_ecrsm
    2 Day Cleared DAM Ancillary Service ECRSM
/np3-911-er/2d_cleared_dam_as_ecrss
    2 Day Cleared DAM Ancillary Service ECRSS
/np3-911-er/2d_cleared_dam_as_nspin
    2 Day Cleared DAM Ancillary Service NSPIN
/np3-911-er/2d_cleared_dam_as_regdn
    2 Day Cleared DAM Ancillary Service REGDN
/np3-911-er/2d_cleared_dam_as_regup
    2 Day Cleared DAM Ancillary Service REGUP
/np3-911-er/2d_cleared_dam_as_rrsffr
    2 Day Cleared DAM Ancillary Service RRSFFR
/np3-911-er/2d_cleared_dam_as_rrspfr
    2 Day Cleared DAM Ancillary Service RRSPFR
/np3-911-er/2d_cleared_dam_as_rrsufr
    2 Day Cleared DAM Ancillary Service RRSUFR
/np3-911-er/2d_self_arranged_as_ecrsm
    2 Day Self Arranged Ancillary Service ECRSM
/np3-911-er/2d_self_arranged_as_ecrss
    2 Day Self Arranged Ancillary Service ECRSS
/np3-911-er/2d_self_arranged_as_nspin
    2 Day Self Arranged Ancillary Service NSPIN
/np3-911-er/2d_self_arranged_as_nspnm
    2 Day Self Arranged Ancillary Service NSPNM
/np3-911-er/2d_self_arranged_as_regdn
    2 Day Self Arranged Ancillary Service REGDN
/np3-911-er/2d_self_arranged_as_regup
    2 Day Self Arranged Ancillary Service REGUP
/np3-911-er/2d_self_arranged_as_rrsffr
    2 Day Self Arranged Ancillary Service RRSFFR
/np3-911-er/2d_self_arranged_as_rrspfr
    2 Day Self Arranged Ancillary Service RRSPFR
/np3-911-er/2d_self_arranged_as_rrsufr
    2 Day Self Arranged Ancillary Service RRSUFR
/np3-965-er/60_hdl_ldl_man_override
    60 Day HDL and LDL Manual Override Summary
/np3-965-er/60_load_res_data_in_sced
    60 Day Load Resource Data in SCED
/np3-965-er/60_sced_dsr_load_data
    60 Day SCED DSR Load Data
/np3-965-er/60_sced_gen_res_data
    60 Day SCED Gen Resource Data
/np3-965-er/60_sced_qse_self_arranged_as
    60 Day QSE-specific Self-Arranged AS in SCED
/np3-965-er/60_sced_smne_gen_res
    60 Day SCED Settlement Metered Net Energy for Generation Resources
/np3-966-er/60_dam_energy_bid_awards
    60 Day DAM Energy Bid Awards
/np3-966-er/60_dam_energy_bids
    60 Day DAM Energy Bids
/np3-966-er/60_dam_energy_only_offer_awards
    60 Day DAM Energy Offer Only Awards
/np3-966-er/60_dam_energy_only_offers
    60 Day DAM Energy Only Offers
/np3-966-er/60_dam_gen_res_as_offers
    60 Day DAM Generation Resources AS Offers
/np3-966-er/60_dam_gen_res_data
    60 Day DAM Generation Resource Data
/np3-966-er/60_dam_load_res_as_offers
    60 Day DAM Load Resources AS Offers
/np3-966-er/60_dam_load_res_data
    60 Day DAM Load Resource Data
/np3-966-er/60_dam_ptp_obl_bid_awards
    60 Day DAM PTP Obligation Bid Awards
/np3-966-er/60_dam_ptp_obl_bids
    60 Day DAM PTP Obligation Bids
/np3-966-er/60_dam_ptp_obl_opt
    60 Day DAM PTP Obligation Option
/np3-966-er/60_dam_ptp_obl_opt_awards
    60 Day DAM PTP Obligation Option Awards
/np3-966-er/60_dam_qse_self_as
    60 Day DAM QSE Self Arranged AS
/np3-990-ex/60_sasm_gen_res_as_offer_awards
    60 Day SASM Generation Resource AS Offer Awards
/np3-990-ex/60_sasm_gen_res_as_offers
    60 Day SASM Generation Resource AS Offers
/np3-990-ex/60_sasm_load_res_as_offer_awards
    60 Day SASM Load Resource AS Offer Awards
/np3-990-ex/60_sasm_load_res_as_offers
    60 Day SASM Load Resource AS Offers
/np3-991-ex/60_cop_all_updates
    60-Day COP All Updates
/np4-159-cd/load_distribution_factors
    Load Distribution Factors
/np4-179-cd/total_as_service_offers
    Total Ancillary Service Offers
/np4-183-cd/dam_hourly_lmp
    DAM Hourly LMPs
/np4-188-cd/dam_clear_price_for_cap
    DAM Clearing Prices for Capacity
/np4-190-cd/dam_stlmnt_pnt_prices
    DAM Settlement Point Prices
/np4-191-cd/dam_shadow_prices
    DAM Shadow Prices
/np4-196-m/dam_price_corrections_eblmp
    DAM Price Corrections for EBLMP
/np4-196-m/dam_price_corrections_mcpc
    DAM Price Corrections for MCPC
/np4-196-m/dam_price_corrections_spp
    DAM Price Corrections for SPP
/np4-197-m/rtm_price_corrections_eblmp
    RTM Price Corrections for EB LMP
/np4-197-m/rtm_price_corrections_shadow
    RTM Price Corrections for Shadow Prices
/np4-197-m/rtm_price_corrections_soglmp
    RTM Price Corrections for SOG LMP
/np4-197-m/rtm_price_corrections_sogprice
    RTM Price Corrections for SOG Price
/np4-197-m/rtm_price_corrections_splmp
    RTM Price Corrections SP LMP
/np4-197-m/rtm_price_corrections_spp
    RTM Price Corrections for SPP
/np4-33-cd/dam_as_plan
    DAM Ancillary Service Plan
/np4-523-cd/dam_system_lambda
    DAM System Lambda
/np4-732-cd/wpp_hrly_avrg_actl_fcast
    Wind Power Production - Hourly Averaged Actual and Forecasted Values
/np4-733-cd/wpp_actual_5min_avg_values
    Wind Power Production - Actual 5-Minute Averaged Values
/np4-737-cd/spp_hrly_avrg_actl_fcast
    Solar Power Production - Hourly Averaged Actual and Forecasted Values
/np4-738-cd/spp_actual_5min_avg_values
    Solar Power Production - Actual 5-Minute Averaged Values
/np4-742-cd/wpp_hrly_actual_fcast_geo
    Wind Power Production - Hourly Averaged Actual and Forecasted Values by Geographical Region
/np4-743-cd/wpp_actual_5min_avg_values_geo
    Wind Power Production - Actual 5-Minute Averaged Values by Geographical Region
/np4-745-cd/spp_hrly_actual_fcast_geo
    Solar Power Production - Hourly Averaged Actual and Forecasted Values by Geographical Region
/np4-746-cd/spp_actual_5min_avg_values_geo
    Solar Power Production - Actual 5-Minute Averaged Values by Geographical Region
/np6-322-cd/sced_system_lambda
    SCED System Lambda
/np6-345-cd/act_sys_load_by_wzn
    Actual System Load by Weather Zone
/np6-346-cd/act_sys_load_by_fzn
    Actual System Load by Forecast Zone
/np6-787-cd/lmp_electrical_bus
    LMP by Electrical Bus
/np6-788-cd/lmp_node_zone_hub
    LMPs by Resource Nodes, Load Zones and Trading Hubs
/np6-86-cd/shdw_prices_bnd_trns_const
    SCED Shadow Prices and Binding Transmission Constraints
/np6-905-cd/spp_node_zone_hub
    Settlement Point Prices at Resource Nodes, Hubs and Load Zones
/np6-970-cd/rtd_lmp_node_zone_hub
    RTD Indicative LMPs by Resource Nodes, Load Zones and Hubs

Step 1: Describe an Endpoint#

You can learn more about an endpoint using the describe_one_endpoint method. Of particular interest are the available query parameters and the data types they expect.

agg_gen_summary_endpoint = "/np3-910-er/2d_agg_gen_summary"
describe_one_endpoint(agg_gen_summary_endpoint)
Endpoint: /np3-910-er/2d_agg_gen_summary
Summary:  2 Day Aggregated Generation Summary
Parameters:
    SCEDTimestampFrom - timestamp
    SCEDTimestampTo - timestamp
    repeatHourFlag - boolean
    sumBasePointNonIRRFrom - float
    sumBasePointNonIRRTo - float
    sumBasePointPVGRFrom - float
    sumBasePointPVGRTo - float
    sumBasePointREMRESFrom - float
    sumBasePointREMRESTo - float
    sumBasePointWGRFrom - float
    sumBasePointWGRTo - float
    sumGenTelemMWFrom - float
    sumGenTelemMWTo - float
    sumHASLNonIRRFrom - float
    sumHASLNonIRRTo - float
    sumHASLPVGRFrom - float
    sumHASLPVGRTo - float
    sumHASLREMRESFrom - float
    sumHASLREMRESTo - float
    sumHASLWGRFrom - float
    sumHASLWGRTo - float
    sumLASLNonIRRFrom - float
    sumLASLNonIRRTo - float
    sumLASLPVGRFrom - float
    sumLASLPVGRTo - float
    sumLASLREMRESFrom - float
    sumLASLREMRESTo - float
    sumLASLWGRFrom - float
    sumLASLWGRTo - float

Step 2: Call an Endpoint#

Now that we know a bit more about this 2 Day Aggregated Generation Summary endpoint, let’s call it using hit_ercot_api and see what happens. Many endpoints do not require any additional query parameters to return a set of results, but use them instead as filters on the full set.

hit_ercot_api(agg_gen_summary_endpoint)
Paginating results: 100%|█████████████████████████| 4/4 [00:01<00:00,  2.58it/s]
SCEDTimestamp repeatHourFlag sumBasePointNonIRR sumHASLNonIRR sumLASLNonIRR sumBasePointWGR sumHASLWGR sumLASLWGR sumBasePointPVGR sumHASLPVGR sumLASLPVGR sumBasePointREMRES sumHASLREMRES sumLASLREMRES sumGenTelemMW
0 2024-01-16T23:45:16 False 46963.455780 58204.342017 30497.337359 13057.234719 13060.980506 58.350000 0.418933 0.423963 0.00001 8810.213811 9800.654220 6705.088538 68854.76505
1 2024-01-16T23:30:16 False 47628.393069 58980.668571 30694.257424 12067.250963 12225.983515 52.989997 0.465937 0.470967 0.00001 8797.717409 9776.742535 6688.335963 68801.99969
2 2024-01-16T23:15:16 False 48707.695164 58868.032236 30851.982106 11256.606046 11433.491533 62.539998 0.478645 0.483675 0.00001 8789.187928 9808.843154 6679.115118 69006.89720
3 2024-01-16T23:00:21 False 49534.056436 58711.465507 30859.706708 10675.955713 10869.809943 61.029998 0.563639 0.568669 0.10722 8769.078376 9738.369907 6656.583265 69177.19634
4 2024-01-16T22:45:16 False 50157.107369 58782.333814 30928.349444 10011.795152 10188.301723 59.689998 0.476093 0.481123 0.00001 8786.444642 9720.201107 6644.716431 69064.13296
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
3739 2023-11-30T01:00:29 False 15334.882078 26097.258805 13493.675455 20529.639621 21606.097249 0.271000 0.460000 0.460030 0.00001 4179.395750 5458.185589 2610.746287 39888.91046
3740 2023-11-30T00:45:20 False 15264.983091 25872.599126 13425.997942 20731.535573 22018.299920 0.200000 0.460000 0.460030 0.00001 4211.730788 5645.808701 2632.637704 40015.79030
3741 2023-11-30T00:30:23 False 15010.084410 25877.501560 13422.302055 20944.482541 22229.569151 0.200000 1.211655 1.211685 0.00001 4232.633870 5657.592521 2637.483592 40150.17170
3742 2023-11-30T00:15:23 False 15573.123020 26255.152238 13714.226530 20718.690425 22376.947084 0.245000 0.460000 0.460030 0.00001 4288.907554 5728.056499 2646.508661 40631.90838
3743 2023-11-30T00:00:32 False 16226.445152 26183.626186 13716.219817 20159.097165 22159.051377 0.200000 0.460000 0.460030 0.00001 4229.187207 5621.672040 2649.633375 41068.92079

3744 rows × 15 columns

Some things we can learn about hit_ercot_api from this result:

  1. It will automatically paginate results, and uses the progress bar to inform you how many total pages there will be.

  2. It will concatenate all of the results into a single DataFrame.

Let’s see what happens when we apply a timestamp filter parameter:

start_timestamp = "2024-01-10"
end_timestamp = datetime.datetime(2024, 1, 11, 12, 45)
hit_ercot_api(agg_gen_summary_endpoint, SCEDTimestampFrom=start_timestamp, SCEDTimestampTo=end_timestamp)
Paginating results:   0%|                                 | 0/1 [00:00<?, ?it/s]
Paginating results: 100%|█████████████████████████| 1/1 [00:00<00:00,  4.21it/s]
SCEDTimestamp repeatHourFlag sumBasePointNonIRR sumHASLNonIRR sumLASLNonIRR sumBasePointWGR sumHASLWGR sumLASLWGR sumBasePointPVGR sumHASLPVGR sumLASLPVGR sumBasePointREMRES sumHASLREMRES sumLASLREMRES sumGenTelemMW
0 2024-01-11T12:30:17 False 16710.791078 34661.041863 16563.691348 18714.051685 21456.127095 0.600000 5603.687585 10969.789988 7.00001 4370.300200 5218.657660 2647.940853 45623.22383
1 2024-01-11T12:15:19 False 16713.433568 34677.939188 16531.692243 18617.251596 20876.913979 0.690000 6205.700635 10904.262782 7.00001 4303.249836 5152.284361 2647.177795 46072.48858
2 2024-01-11T12:00:21 False 16718.405891 34662.895304 16566.934512 18550.765643 20422.282952 0.700000 6722.159076 11270.610240 7.00001 4261.382043 5238.029450 2652.119629 46636.83707
3 2024-01-11T11:45:15 False 16846.734654 34449.789893 16673.706210 18235.362366 19798.341808 0.700000 7196.192322 10878.094938 7.00001 4143.062741 5348.697732 2646.416171 46615.48747
4 2024-01-11T11:30:18 False 16851.661860 34520.715910 16764.006786 17906.590901 19249.552004 0.640000 7810.127397 11013.736502 7.00001 4127.056665 5245.076468 2647.765870 47246.68135
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
142 2024-01-10T01:00:22 False 23855.728038 36770.080282 18688.007354 23540.057196 25040.914367 0.100000 0.855943 1.137887 0.00001 3821.654057 4936.871071 2862.844463 51137.33479
143 2024-01-10T00:45:18 False 24179.806574 36014.815005 18724.156754 23337.724571 24849.792116 20.308813 1.124851 1.826261 0.00001 3919.658404 5723.238870 2873.319377 51467.27568
144 2024-01-10T00:30:18 False 24541.118884 36999.639586 19214.063281 23091.855394 24399.362856 20.308813 1.064241 1.065464 0.00001 3809.600442 5820.160470 2846.007988 51636.03125
145 2024-01-10T00:15:16 False 25055.383032 37214.995095 19341.276734 22876.875874 23865.221682 20.918813 46.860760 47.044290 0.00001 3797.949028 5811.665461 2836.677687 51824.76123
146 2024-01-10T00:00:25 False 25417.616771 38384.004197 19844.706048 22096.722712 23076.868733 21.008813 23.905194 41.165052 0.00001 3836.587816 5707.167997 2895.729596 51381.67598

147 rows × 15 columns

The hit_ercot_api method ensures that query parameter values are parsed into the expected format. For timestamp parameters in particular, this is a nice convenience. As evidenced by the previous call, you can pass in either a string (that adheres to isoformat) or a datetime object, and the results will be the same!

Now let’s apply some filters on result values rather than timestamps, arbitrarily selecting rows where sumBasePointNonIRR is between 45000 and 50000:

hit_ercot_api(agg_gen_summary_endpoint, sumBasePointNonIRRFrom=45000.00, sumBasePointNonIRRTo=50000.00)
Paginating results:   0%|                                 | 0/1 [00:00<?, ?it/s]
Paginating results: 100%|█████████████████████████| 1/1 [00:00<00:00,  4.44it/s]
SCEDTimestamp repeatHourFlag sumBasePointNonIRR sumHASLNonIRR sumLASLNonIRR sumBasePointWGR sumHASLWGR sumLASLWGR sumBasePointPVGR sumHASLPVGR sumLASLPVGR sumBasePointREMRES sumHASLREMRES sumLASLREMRES sumGenTelemMW
0 2024-01-16T23:45:16 False 46963.455780 58204.342017 30497.337359 13057.234719 13060.980506 58.350000 0.418933 0.423963 0.00001 8810.213811 9800.654220 6705.088538 68854.76505
1 2024-01-16T23:30:16 False 47628.393069 58980.668571 30694.257424 12067.250963 12225.983515 52.989997 0.465937 0.470967 0.00001 8797.717409 9776.742535 6688.335963 68801.99969
2 2024-01-16T23:15:16 False 48707.695164 58868.032236 30851.982106 11256.606046 11433.491533 62.539998 0.478645 0.483675 0.00001 8789.187928 9808.843154 6679.115118 69006.89720
3 2024-01-16T23:00:21 False 49534.056436 58711.465507 30859.706708 10675.955713 10869.809943 61.029998 0.563639 0.568669 0.10722 8769.078376 9738.369907 6656.583265 69177.19634
4 2024-01-16T17:00:17 False 47494.408569 55493.277468 29777.326294 2221.969259 2221.969257 0.674499 6387.881879 6462.313905 7.00001 9128.919032 10245.377962 6681.038574 64530.37894
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
79 2024-01-14T07:00:26 False 48073.882030 59280.704085 30425.983212 9378.137109 10654.918664 1.350000 0.214707 0.573343 0.02201 4275.320153 5600.270474 2973.696291 61464.05927
80 2024-01-14T06:45:16 False 47714.021066 59326.911666 30367.329645 9197.773856 10567.144716 2.200000 0.214707 0.565968 0.02201 4313.029230 5370.103423 3006.821965 60949.99802
81 2024-01-14T06:30:19 False 47148.282296 59472.300845 30371.173713 9666.391366 11022.241073 2.120000 0.253423 0.541764 0.02201 4219.080139 5466.189063 2961.793535 60582.00988
82 2024-01-14T06:15:18 False 46650.108097 59417.544558 30333.256628 9622.754171 10808.903045 2.310000 0.279848 0.645629 0.02201 4202.128633 5501.335685 2937.792834 60212.83897
83 2024-01-14T06:00:22 False 45223.127518 59004.662543 30244.197138 10179.395219 11356.658559 2.180000 0.214707 0.522248 0.02201 4335.167671 5501.291406 2935.329528 59274.32499

84 rows × 15 columns

Let’s move on to a different endpoint to learn some other features of the API.

spp_endpoint = "/np6-905-cd/spp_node_zone_hub"
describe_one_endpoint(spp_endpoint)
Endpoint: /np6-905-cd/spp_node_zone_hub
Summary:  Settlement Point Prices at Resource Nodes, Hubs and Load Zones
Parameters:
    DSTFlag - boolean
    deliveryDateFrom - date
    deliveryDateTo - date
    deliveryHourFrom - integer
    deliveryHourTo - integer
    deliveryIntervalFrom - integer
    deliveryIntervalTo - integer
    settlementPoint - string
    settlementPointPriceFrom - float
    settlementPointPriceTo - float
    settlementPointType - string

Some endpoints can return hundreds or thousands of pages of results. You can use the max_pages argument to limit the number of pages of results and receive them quicker. This is a useful feature during exploratory analysis, but might not be desirable for production processes that expect a full set of results. To that end, note that a warning is printed if you use the max_pages argument and it would prevent you from receiving the full data results of the query.

hit_ercot_api(spp_endpoint, max_pages=10)
Paginating results:  10%|██▍                     | 1/10 [00:00<00:03,  2.35it/s]
warning: only retrieving 10 pages out of 3261 total
Paginating results: 100%|███████████████████████| 10/10 [00:04<00:00,  2.06it/s]
deliveryDate deliveryHour deliveryInterval settlementPoint settlementPointType settlementPointPrice DSTFlag
0 2024-01-18 13 4 ZIER_SLR_ALL RN 11.08 False
1 2024-01-18 13 4 YNG_WND_ALL RN 11.08 False
2 2024-01-18 13 4 X443ESRN RN 11.08 False
3 2024-01-18 13 4 W_PECO_UNIT1 RN 11.08 False
4 2024-01-18 13 4 W_HRL_ESR_RN RN 11.08 False
... ... ... ... ... ... ... ...
9995 2024-01-18 11 1 STP_STP_G1 RN 13.56 False
9996 2024-01-18 11 1 STELLA_RN RN 13.56 False
9997 2024-01-18 11 1 STEA_STEAM_3 RN 13.56 False
9998 2024-01-18 11 1 STEA_STEAM_2 RN 13.56 False
9999 2024-01-18 11 1 STEA_STEAM_1 RN 13.56 False

10000 rows × 7 columns