concordance_region_extended = pd.DataFrame(index=region_sector, columns=country_sector)
for region in region_index:
for sector_1 in sector_index:
for country in country_index:
for sector_2 in sector_index:
if sector_1 == sector_2 and concordance_region.loc[region, country] == 1:
concordance_region_expanded.loc[(region, sector_1),(country, sector_2)] = 1
concordance_region_expanded = concordance_region_expanded.fillna(value=0).infer_objects(copy=False)
concordance_region_expanded
Но я думаю, что приведенный выше код не является ни эффективным, ни элегантным.
Есть ли способ решить описанную выше проблему?
[code]import pandas as pd concordance_region = pd.DataFrame( { "country 1": pd.Series([1, 0], index=["region a", "region b"]), "country 2": pd.Series([0, 1], index=["region a", "region b"]), "country 3": pd.Series([0, 1], index=["region a", "region b"]), } ) display(concordance_region) country_index = concordance_region.columns region_index = concordance_region.index sector_index = ['sector a','sector b'] country_sector = pd.MultiIndex.from_product([country_index, sector_index], names=["country", "sector"]) region_sector = pd.MultiIndex.from_product([region_index, sector_index], names=["region", "sector"]) [/code] [code]concordance_region_expanded = pd.DataFrame([[1,0,0,0,0,0],[0,1,0,0,0,0],[0,0,1,0,1,0],[0,0,0,1,0,1]], index=region_sector, columns=country_sector) display(concordance_region_expanded) [/code] Я хочу добиться указанного выше расширения без жесткого кодирования числа. Возможен следующий вариант: [code]concordance_region_extended = pd.DataFrame(index=region_sector, columns=country_sector) for region in region_index: for sector_1 in sector_index: for country in country_index: for sector_2 in sector_index: if sector_1 == sector_2 and concordance_region.loc[region, country] == 1: concordance_region_expanded.loc[(region, sector_1),(country, sector_2)] = 1 concordance_region_expanded = concordance_region_expanded.fillna(value=0).infer_objects(copy=False) concordance_region_expanded [/code] Но я думаю, что приведенный выше код не является ни эффективным, ни элегантным. Есть ли способ решить описанную выше проблему?
У меня есть несколько индексных df с месяцем, затем идентификаторами объектов и значением TotalSpend для каждого объекта. Я пытаюсь агрегировать общие расходы по всем учреждениям за квартал, где есть данные за все 3 месяца квартала И за все 3 месяца...
У меня всегда сложилось впечатление, что Pandas использует хеширование при индексировании строк в кадре данных, поэтому такие операции, как df.loc , равны O(1).Однако только сегодня я понял, что это не так, по крайней мере, для многоиндексного...
Problem/Task: create a function that inputs a pandas data frame represented by the markdown in Fig 1 and converts/outputs it to a list with the structure represented in Fig 2.
I look forward to any feedback/support anyone might have!
Fig 1: Pandas...