Check if cell in dataframe is NaN, if it is, iterate to the next cell
Question:
I have a nested dataframe that I need to explode()
.
I’m imagining the code will be something like this?
I would like to avoid using the explicit column names in the code if possible since then the code would break if the column names were to change.
for i in range(len(df.columns)):
if df.isnull(df.iloc[:, [i]]):
pass
else:
df.iloc[:, [i]].apply(pd.Series)
This is my dataframe:
{
"Segment": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": np.nan,
"CommonStockCapitalSharesReservedForFutureIssuance": np.nan,
"CommonStockParOrStatedValuePerShare": np.nan,
"CommonStockSharesAuthorized": np.nan,
"CommonStockSharesIssued": np.nan,
"CommonStockSharesOutstanding": np.nan
},
"USD": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": [
{
"accn": "0000950170-22-002008",
"end": "2019-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2019",
"fy": 2021,
"start": "2019-01-01",
"val": -19846000
},
{
"accn": "0000950170-21-000956",
"end": "2020-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"start": "2020-01-01",
"val": 9247000
},
{
"accn": "0000950170-21-003110",
"end": "2020-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"start": "2020-01-01",
"val": 33446000
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020",
"fy": 2021,
"start": "2020-01-01",
"val": 17835000
},
{
"accn": "0000950170-22-007876",
"end": "2021-03-31",
"filed": "2022-05-05",
"form": "10-Q",
"fp": "Q1",
"frame": "CY2021Q1",
"fy": 2022,
"start": "2021-01-01",
"val": 7308000
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"start": "2021-01-01",
"val": 823291000
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"start": "2021-01-01",
"val": 545641000
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021",
"fy": 2021,
"start": "2021-01-01",
"val": 1338876000
},
{
"accn": "0000950170-22-007876",
"end": "2022-03-31",
"filed": "2022-05-05",
"form": "10-Q",
"fp": "Q1",
"frame": "CY2022Q1",
"fy": 2022,
"start": "2022-01-01",
"val": -328343000
}
],
"CommonStockCapitalSharesReservedForFutureIssuance": np.nan,
"CommonStockParOrStatedValuePerShare": np.nan,
"CommonStockSharesAuthorized": np.nan,
"CommonStockSharesIssued": np.nan,
"CommonStockSharesOutstanding": np.nan
},
"USD/shares": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": np.nan,
"CommonStockCapitalSharesReservedForFutureIssuance": np.nan,
"CommonStockParOrStatedValuePerShare": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021Q4I",
"fy": 2021,
"val": 1e-05
}
],
"CommonStockSharesAuthorized": np.nan,
"CommonStockSharesIssued": np.nan,
"CommonStockSharesOutstanding": np.nan
},
"pure": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": np.nan,
"CommonStockCapitalSharesReservedForFutureIssuance": np.nan,
"CommonStockParOrStatedValuePerShare": np.nan,
"CommonStockSharesAuthorized": np.nan,
"CommonStockSharesIssued": np.nan,
"CommonStockSharesOutstanding": np.nan
},
"shares": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": np.nan,
"CommonStockCapitalSharesReservedForFutureIssuance": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 191849299
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 191849299
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 191849299
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 118286387
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 113722500
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"fy": 2021,
"val": 106320711
},
{
"accn": "0000950170-22-007876",
"end": "2021-12-31",
"filed": "2022-05-05",
"form": "10-Q",
"fp": "Q1",
"frame": "CY2021Q4I",
"fy": 2022,
"val": 106320711
},
{
"accn": "0000950170-22-007876",
"end": "2022-03-31",
"filed": "2022-05-05",
"form": "10-Q",
"fp": "Q1",
"frame": "CY2022Q1I",
"fy": 2022,
"val": 116393943
}
],
"CommonStockParOrStatedValuePerShare": np.nan,
"CommonStockSharesAuthorized": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 323000000
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 323000000
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 323000000
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021Q4I",
"fy": 2021,
"val": 0
}
],
"CommonStockSharesIssued": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021Q4I",
"fy": 2021,
"val": 0
}
],
"CommonStockSharesOutstanding": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021Q4I",
"fy": 2021,
"val": 0
}
]
}
}
Answers:
You do not have a DataFrame, You have a complicated nested dictionary. We can try to make sense of it like this:
Every 2nd level value that’s a list can be made into a DataFrame, but we still probably want to know where it came from, so we’ll give it a MultiIndex with that information.
dfs = []
names = ['category1', 'category2']
for i, x in data.items():
for j, y in x.items():
if isinstance(y, list):
index = pd.MultiIndex.from_tuples([(i, j)]*len(y), names=names)
dfs.append(pd.DataFrame(y, index=index))
# Optional, if you want the blank values as well:
#else:
#index = pd.MultiIndex.from_tuples([(i, j)], names=names)
#dfs.append(pd.DataFrame(index=index))
df = pd.concat(dfs)
print(df)
Output:
accn end filed form fp frame fy start val
category1 category2
USD CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2019-12-31 2022-02-24 10-K FY CY2019 2021 2019-01-01 -1.984600e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-000956 2020-06-30 2021-08-05 10-Q Q2 NaN 2021 2020-01-01 9.247000e+06
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-003110 2020-09-30 2021-11-04 10-Q Q3 NaN 2021 2020-01-01 3.344600e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020 2021 2020-01-01 1.783500e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-007876 2021-03-31 2022-05-05 10-Q Q1 CY2021Q1 2022 2021-01-01 7.308000e+06
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 NaN 2021 2021-01-01 8.232910e+08
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 NaN 2021 2021-01-01 5.456410e+08
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021 2021 2021-01-01 1.338876e+09
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-007876 2022-03-31 2022-05-05 10-Q Q1 CY2022Q1 2022 2022-01-01 -3.283430e+08
USD/shares CommonStockParOrStatedValuePerShare 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021Q4I 2021 NaN 1.000000e-05
shares CommonStockCapitalSharesReservedForFutureIssuance 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 1.918493e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 1.918493e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 1.918493e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 1.182864e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 1.137225e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY NaN 2021 NaN 1.063207e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-22-007876 2021-12-31 2022-05-05 10-Q Q1 CY2021Q4I 2022 NaN 1.063207e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-22-007876 2022-03-31 2022-05-05 10-Q Q1 CY2022Q1I 2022 NaN 1.163939e+08
CommonStockSharesAuthorized 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 3.230000e+08
CommonStockSharesAuthorized 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 3.230000e+08
CommonStockSharesAuthorized 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 3.230000e+08
CommonStockSharesAuthorized 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 0.000000e+00
CommonStockSharesAuthorized 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 0.000000e+00
CommonStockSharesAuthorized 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021Q4I 2021 NaN 0.000000e+00
CommonStockSharesIssued 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 1.094478e+08
CommonStockSharesIssued 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 1.094478e+08
CommonStockSharesIssued 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 1.094478e+08
CommonStockSharesIssued 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 0.000000e+00
CommonStockSharesIssued 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 0.000000e+00
CommonStockSharesIssued 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021Q4I 2021 NaN 0.000000e+00
CommonStockSharesOutstanding 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 1.094478e+08
CommonStockSharesOutstanding 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 1.094478e+08
CommonStockSharesOutstanding 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 1.094478e+08
CommonStockSharesOutstanding 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 0.000000e+00
CommonStockSharesOutstanding 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 0.000000e+00
CommonStockSharesOutstanding 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021Q4I 2021 NaN 0.000000e+00
Output with blanks:
>>> print(df.head(25))
accn end filed form fp frame fy start val
category1 category2
Segment CashCashEquivalentsRestrictedCashAndRestrictedC... NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockCapitalSharesReservedForFutureIssuance NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockParOrStatedValuePerShare NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesAuthorized NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesIssued NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesOutstanding NaN NaN NaN NaN NaN NaN NaN NaN NaN
USD CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2019-12-31 2022-02-24 10-K FY CY2019 2021.0 2019-01-01 -1.984600e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-000956 2020-06-30 2021-08-05 10-Q Q2 NaN 2021.0 2020-01-01 9.247000e+06
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-003110 2020-09-30 2021-11-04 10-Q Q3 NaN 2021.0 2020-01-01 3.344600e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020 2021.0 2020-01-01 1.783500e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-007876 2021-03-31 2022-05-05 10-Q Q1 CY2021Q1 2022.0 2021-01-01 7.308000e+06
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 NaN 2021.0 2021-01-01 8.232910e+08
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 NaN 2021.0 2021-01-01 5.456410e+08
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021 2021.0 2021-01-01 1.338876e+09
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-007876 2022-03-31 2022-05-05 10-Q Q1 CY2022Q1 2022.0 2022-01-01 -3.283430e+08
CommonStockCapitalSharesReservedForFutureIssuance NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockParOrStatedValuePerShare NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesAuthorized NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesIssued NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesOutstanding NaN NaN NaN NaN NaN NaN NaN NaN NaN
USD/shares CashCashEquivalentsRestrictedCashAndRestrictedC... NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockCapitalSharesReservedForFutureIssuance NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockParOrStatedValuePerShare 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021.0 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021.0 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021.0 NaN 1.000000e-05
I have a nested dataframe that I need to explode()
.
I’m imagining the code will be something like this?
I would like to avoid using the explicit column names in the code if possible since then the code would break if the column names were to change.
for i in range(len(df.columns)):
if df.isnull(df.iloc[:, [i]]):
pass
else:
df.iloc[:, [i]].apply(pd.Series)
This is my dataframe:
{
"Segment": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": np.nan,
"CommonStockCapitalSharesReservedForFutureIssuance": np.nan,
"CommonStockParOrStatedValuePerShare": np.nan,
"CommonStockSharesAuthorized": np.nan,
"CommonStockSharesIssued": np.nan,
"CommonStockSharesOutstanding": np.nan
},
"USD": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": [
{
"accn": "0000950170-22-002008",
"end": "2019-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2019",
"fy": 2021,
"start": "2019-01-01",
"val": -19846000
},
{
"accn": "0000950170-21-000956",
"end": "2020-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"start": "2020-01-01",
"val": 9247000
},
{
"accn": "0000950170-21-003110",
"end": "2020-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"start": "2020-01-01",
"val": 33446000
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020",
"fy": 2021,
"start": "2020-01-01",
"val": 17835000
},
{
"accn": "0000950170-22-007876",
"end": "2021-03-31",
"filed": "2022-05-05",
"form": "10-Q",
"fp": "Q1",
"frame": "CY2021Q1",
"fy": 2022,
"start": "2021-01-01",
"val": 7308000
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"start": "2021-01-01",
"val": 823291000
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"start": "2021-01-01",
"val": 545641000
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021",
"fy": 2021,
"start": "2021-01-01",
"val": 1338876000
},
{
"accn": "0000950170-22-007876",
"end": "2022-03-31",
"filed": "2022-05-05",
"form": "10-Q",
"fp": "Q1",
"frame": "CY2022Q1",
"fy": 2022,
"start": "2022-01-01",
"val": -328343000
}
],
"CommonStockCapitalSharesReservedForFutureIssuance": np.nan,
"CommonStockParOrStatedValuePerShare": np.nan,
"CommonStockSharesAuthorized": np.nan,
"CommonStockSharesIssued": np.nan,
"CommonStockSharesOutstanding": np.nan
},
"USD/shares": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": np.nan,
"CommonStockCapitalSharesReservedForFutureIssuance": np.nan,
"CommonStockParOrStatedValuePerShare": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 1e-05
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021Q4I",
"fy": 2021,
"val": 1e-05
}
],
"CommonStockSharesAuthorized": np.nan,
"CommonStockSharesIssued": np.nan,
"CommonStockSharesOutstanding": np.nan
},
"pure": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": np.nan,
"CommonStockCapitalSharesReservedForFutureIssuance": np.nan,
"CommonStockParOrStatedValuePerShare": np.nan,
"CommonStockSharesAuthorized": np.nan,
"CommonStockSharesIssued": np.nan,
"CommonStockSharesOutstanding": np.nan
},
"shares": {
"CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": np.nan,
"CommonStockCapitalSharesReservedForFutureIssuance": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 191849299
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 191849299
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 191849299
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 118286387
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 113722500
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"fy": 2021,
"val": 106320711
},
{
"accn": "0000950170-22-007876",
"end": "2021-12-31",
"filed": "2022-05-05",
"form": "10-Q",
"fp": "Q1",
"frame": "CY2021Q4I",
"fy": 2022,
"val": 106320711
},
{
"accn": "0000950170-22-007876",
"end": "2022-03-31",
"filed": "2022-05-05",
"form": "10-Q",
"fp": "Q1",
"frame": "CY2022Q1I",
"fy": 2022,
"val": 116393943
}
],
"CommonStockParOrStatedValuePerShare": np.nan,
"CommonStockSharesAuthorized": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 323000000
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 323000000
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 323000000
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021Q4I",
"fy": 2021,
"val": 0
}
],
"CommonStockSharesIssued": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021Q4I",
"fy": 2021,
"val": 0
}
],
"CommonStockSharesOutstanding": [
{
"accn": "0000950170-21-000956",
"end": "2020-12-31",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-21-003110",
"end": "2020-12-31",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-22-002008",
"end": "2020-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2020Q4I",
"fy": 2021,
"val": 109447843
},
{
"accn": "0000950170-21-000956",
"end": "2021-06-30",
"filed": "2021-08-05",
"form": "10-Q",
"fp": "Q2",
"frame": "CY2021Q2I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-21-003110",
"end": "2021-09-30",
"filed": "2021-11-04",
"form": "10-Q",
"fp": "Q3",
"frame": "CY2021Q3I",
"fy": 2021,
"val": 0
},
{
"accn": "0000950170-22-002008",
"end": "2021-12-31",
"filed": "2022-02-24",
"form": "10-K",
"fp": "FY",
"frame": "CY2021Q4I",
"fy": 2021,
"val": 0
}
]
}
}
You do not have a DataFrame, You have a complicated nested dictionary. We can try to make sense of it like this:
Every 2nd level value that’s a list can be made into a DataFrame, but we still probably want to know where it came from, so we’ll give it a MultiIndex with that information.
dfs = []
names = ['category1', 'category2']
for i, x in data.items():
for j, y in x.items():
if isinstance(y, list):
index = pd.MultiIndex.from_tuples([(i, j)]*len(y), names=names)
dfs.append(pd.DataFrame(y, index=index))
# Optional, if you want the blank values as well:
#else:
#index = pd.MultiIndex.from_tuples([(i, j)], names=names)
#dfs.append(pd.DataFrame(index=index))
df = pd.concat(dfs)
print(df)
Output:
accn end filed form fp frame fy start val
category1 category2
USD CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2019-12-31 2022-02-24 10-K FY CY2019 2021 2019-01-01 -1.984600e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-000956 2020-06-30 2021-08-05 10-Q Q2 NaN 2021 2020-01-01 9.247000e+06
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-003110 2020-09-30 2021-11-04 10-Q Q3 NaN 2021 2020-01-01 3.344600e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020 2021 2020-01-01 1.783500e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-007876 2021-03-31 2022-05-05 10-Q Q1 CY2021Q1 2022 2021-01-01 7.308000e+06
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 NaN 2021 2021-01-01 8.232910e+08
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 NaN 2021 2021-01-01 5.456410e+08
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021 2021 2021-01-01 1.338876e+09
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-007876 2022-03-31 2022-05-05 10-Q Q1 CY2022Q1 2022 2022-01-01 -3.283430e+08
USD/shares CommonStockParOrStatedValuePerShare 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021Q4I 2021 NaN 1.000000e-05
shares CommonStockCapitalSharesReservedForFutureIssuance 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 1.918493e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 1.918493e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 1.918493e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 1.182864e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 1.137225e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY NaN 2021 NaN 1.063207e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-22-007876 2021-12-31 2022-05-05 10-Q Q1 CY2021Q4I 2022 NaN 1.063207e+08
CommonStockCapitalSharesReservedForFutureIssuance 0000950170-22-007876 2022-03-31 2022-05-05 10-Q Q1 CY2022Q1I 2022 NaN 1.163939e+08
CommonStockSharesAuthorized 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 3.230000e+08
CommonStockSharesAuthorized 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 3.230000e+08
CommonStockSharesAuthorized 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 3.230000e+08
CommonStockSharesAuthorized 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 0.000000e+00
CommonStockSharesAuthorized 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 0.000000e+00
CommonStockSharesAuthorized 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021Q4I 2021 NaN 0.000000e+00
CommonStockSharesIssued 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 1.094478e+08
CommonStockSharesIssued 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 1.094478e+08
CommonStockSharesIssued 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 1.094478e+08
CommonStockSharesIssued 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 0.000000e+00
CommonStockSharesIssued 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 0.000000e+00
CommonStockSharesIssued 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021Q4I 2021 NaN 0.000000e+00
CommonStockSharesOutstanding 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021 NaN 1.094478e+08
CommonStockSharesOutstanding 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021 NaN 1.094478e+08
CommonStockSharesOutstanding 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021 NaN 1.094478e+08
CommonStockSharesOutstanding 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 CY2021Q2I 2021 NaN 0.000000e+00
CommonStockSharesOutstanding 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 CY2021Q3I 2021 NaN 0.000000e+00
CommonStockSharesOutstanding 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021Q4I 2021 NaN 0.000000e+00
Output with blanks:
>>> print(df.head(25))
accn end filed form fp frame fy start val
category1 category2
Segment CashCashEquivalentsRestrictedCashAndRestrictedC... NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockCapitalSharesReservedForFutureIssuance NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockParOrStatedValuePerShare NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesAuthorized NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesIssued NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesOutstanding NaN NaN NaN NaN NaN NaN NaN NaN NaN
USD CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2019-12-31 2022-02-24 10-K FY CY2019 2021.0 2019-01-01 -1.984600e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-000956 2020-06-30 2021-08-05 10-Q Q2 NaN 2021.0 2020-01-01 9.247000e+06
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-003110 2020-09-30 2021-11-04 10-Q Q3 NaN 2021.0 2020-01-01 3.344600e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020 2021.0 2020-01-01 1.783500e+07
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-007876 2021-03-31 2022-05-05 10-Q Q1 CY2021Q1 2022.0 2021-01-01 7.308000e+06
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-000956 2021-06-30 2021-08-05 10-Q Q2 NaN 2021.0 2021-01-01 8.232910e+08
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-21-003110 2021-09-30 2021-11-04 10-Q Q3 NaN 2021.0 2021-01-01 5.456410e+08
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-002008 2021-12-31 2022-02-24 10-K FY CY2021 2021.0 2021-01-01 1.338876e+09
CashCashEquivalentsRestrictedCashAndRestrictedC... 0000950170-22-007876 2022-03-31 2022-05-05 10-Q Q1 CY2022Q1 2022.0 2022-01-01 -3.283430e+08
CommonStockCapitalSharesReservedForFutureIssuance NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockParOrStatedValuePerShare NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesAuthorized NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesIssued NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockSharesOutstanding NaN NaN NaN NaN NaN NaN NaN NaN NaN
USD/shares CashCashEquivalentsRestrictedCashAndRestrictedC... NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockCapitalSharesReservedForFutureIssuance NaN NaN NaN NaN NaN NaN NaN NaN NaN
CommonStockParOrStatedValuePerShare 0000950170-21-000956 2020-12-31 2021-08-05 10-Q Q2 NaN 2021.0 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-21-003110 2020-12-31 2021-11-04 10-Q Q3 NaN 2021.0 NaN 1.000000e-05
CommonStockParOrStatedValuePerShare 0000950170-22-002008 2020-12-31 2022-02-24 10-K FY CY2020Q4I 2021.0 NaN 1.000000e-05