Anonymous
Очистка разобранных данных из pdf в csv
Сообщение
Anonymous » 14 ноя 2024, 18:13
Я работаю над демографическими прогнозами для каждого округа Индии. В Индии не проводилось переписи населения с 2011 года, поэтому использовались демографические прогнозы. В моем проекте анализируются некоторые переменные, связанные с детьми на районном уровне, поэтому мне нужен прогноз по детям в возрасте до 6 лет. Теперь проблема, с которой я сталкиваюсь, заключается в том, что демографические прогнозы находятся в pdf-файле объемом 1300 или более страниц. и каждая страница содержит две таблицы. Я пробовал анализировать данные с помощью pypdf, pdfplumber и различных других библиотек, pdfplumber, по крайней мере, смог прочитать текст и предоставить выходные данные. Но вывод довольно беспорядочный: в анализируемых таблицах много None и "\n". Я хочу, чтобы таблица получилась точно или несколько похожей на то, как она выглядит в pdf-файле:
Я использую следующий код:
Код: Выделить всё
import pdfplumber
page_index = 52 # ordinal number of the page with the table of interest
with pdfplumber.open(r"filepath.pdf") as pdf:
first_page = pdf.pages[page_index]
tables = first_page.extract_tables()
for table in tables:
print(table)
Приведенный выше код дал следующий результат:
Код: Выделить всё
[['', 'State: Jammu & Kashmir (01)', None, None, None, None, None, None, None, None, None, None, None, '', '', 'District: Kupwara(01)', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ''], ['', 'Single\nages', '', '2012', None, None, None, '', '', '2013', None, None, None, '', '', '2014', None, None, None, '', '', '2015', None, None, None, '', '', '2016', None, None, None, ''], [None, None, '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', ''], ['All ages\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15-19\n20-24\n25-29\n30-34\n35-39\n40-44\n45-49\n50-54\n55-59\n60-64\n65-69\n70-74\n75-79\n80+', None, '483826 402010 493551 407895 503372 413810 513290 419757 523304 425735\n16024 13348 17045 14110 18097 14889 19181 15686 20297 16501\n15367 13066 16229 13673 17115 14293 18027 14926 18964 15572\n14865 12857 15589 13336 16333 13823 17096 14321 17880 14827\n14493 12706 15099 13080 15721 13460 16358 13847 17010 14240\n14225 12599 14732 12889 15250 13184 15780 13483 16322 13785\n14035 12518 14459 12745 14890 12973 15331 13204 15780 13437\n13899 12450 14253 12629 14613 12808 14979 12988 15351 13169\n13790 12380 14087 12524 14388 12669 14693 12813 15001 12957\n13683 12291 13934 12413 14186 12534 14441 12654 14697 12774\n13552 12169 13765 12277 13978 12384 14191 12490 14404 12594\n13454 12048 13639 12153 13824 12256 14007 12359 14190 12460\n13442 11962 13614 12076 13785 12189 13954 12302 14122 12413\n13089 11649 13235 11761 13379 11871 13521 11981 13661 12090\n12205 10997 12302 11083 12396 11167 12487 11250 12573 11331\n11009 10137 11046 10185 11078 10229 11105 10272 11126 10313\n41762 40033 41537 40018 41277 39989 40983 39946 40653 39888\n39253 32745 39930 33260 40611 33779 41294 34302 41981 34828\n43098 26918 44640 27264 46217 27611 47830 27958 49480 28307\n34802 23773 35766 24154 36748 24538 37748 24925 38766 25314\n27607 21850 27869 21918 28124 21981 28373 22037 28615 22088\n24748 17648 25093 17887 25435 18127 25777 18368 26117 18610\n16628 13938 16660 13895 16683 13846 16698 13791 16703 13730\n13577 10678 13495 10818 13402 10959 13298 11100 13181 11241\n8000 8191 8019 8167 8033 8138 8043 8106 8050 8071\n9643 8034 9546 8162 9439 8291 9323 8420 9197 8551\n5153 4875 5244 4924 5335 4973 5427 5022 5519 5071\n5773 4703 5860 4861 5947 5022 6034 5186 6121 5353\n2102 1963 2173 2020 2246 2079 2320 2139 2396 2200\n4546 3482 4692 3612 4840 3745 4992 3880 5147 4018', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]], [['', 'State: Jammu & Kashmir (01)', None, None, None, None, None, None, None, None, None, None, None, '', '', 'District: Kupwara(01)', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ''], ['', 'Single\nages', '', '2017', None, None, None, '', '', '2018', None, None, None, '', '', '2019', None, None, None, '', '', '2020', None, None, None, '', '', '2021', None, None, None, ''], [None, None, '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', ''], ['All ages\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15-19\n20-24\n25-29\n30-34\n35-39\n40-44\n45-49\n50-54\n55-59\n60-64\n65-69\n70-74\n75-79\n80+', None, '532402 430975 541576 436241 550825 441532 560231 446849 569633 452193\n21404 17303 22540 18120 23705 18953 24903 19802 26128 20667\n19890 16203 20839 16846 21811 17500 22811 18166 23831 18844\n18649 15316 19437 15814 20243 16320 21070 16834 21914 17357\n17646 14614 18295 14993 18959 15378 19640 15769 20332 16166\n16843 14067 17376 14353 17919 14642 18475 14934 19040 15231\n16206 13648 16641 13861 17082 14076 17534 14292 17992 14511\n15698 13327 16051 13486 16409 13646 16774 13806 17142 13967\n15284 13077 15570 13198 15858 13318 16152 13438 16447 13558\n14927 12869 15157 12965 15389 13059 15625 13152 15859 13245\n14590 12675 14776 12755 14962 12833 15149 12911 15335 12988\n14345 12538 14499 12614 14652 12690 14805 12764 14955 12837\n14261 12501 14399 12589 14535 12675 14671 12761 14804 12846\n13773 12177 13882 12262 13988 12347 14095 12431 14196 12514\n12632 11391 12687 11450 12739 11507 12788 11563 12832 11618\n11121 10333 11111 10351 11095 10367 11075 10380 11049 10392\n40212 39745 39736 39588 39226 39418 38687 39235 38108 39039\n42591 35295 43202 35765 43815 36238 44436 36714 45052 37193\n51069 28604 52690 28903 54344 29201 56038 29500 57758 29800\n39726 25661 40701 26010 41692 26361 42705 26715 43727 27071\n28796 22094 28970 22094 29137 22090 29302 22080 29455 22065\n26406 18818 26693 19028 26978 19238 27264 19448 27545 19660\n16667 13638 16622 13541 16568 13438 16508 13330 16436 13215\n13028 11363 12864 11484 12688 11606 12502 11729 12303 11851\n8036 8017 8019 7960 7997 7900 7972 7837 7942 7770\n9043 8667 8880 8784 8708 8902 8526 9020 8334 9139\n5601 5111 5684 5150 5766 5188 5850 5227 5933 5265\n6196 5513 6270 5675 6345 5840 6420 6008 6494 6179\n2469 2258 2543 2316 2619 2376 2696 2437 2774 2498\n5294 4151 5445 4287 5598 4424 5756 4564 5915 4707', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]]
[['', 'State: Jammu & Kashmir (01)', None, None, None, None, None, None, None, None, None, None, None, '', '', 'District: Kupwara(01)', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ''], ['', 'Single\nages', '', '2017', None, None, None, '', '', '2018', None, None, None, '', '', '2019', None, None, None, '', '', '2020', None, None, None, '', '', '2021', None, None, None, ''], [None, None, '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', ''], ['All ages\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15-19\n20-24\n25-29\n30-34\n35-39\n40-44\n45-49\n50-54\n55-59\n60-64\n65-69\n70-74\n75-79\n80+', None, '532402 430975 541576 436241 550825 441532 560231 446849 569633 452193\n21404 17303 22540 18120 23705 18953 24903 19802 26128 20667\n19890 16203 20839 16846 21811 17500 22811 18166 23831 18844\n18649 15316 19437 15814 20243 16320 21070 16834 21914 17357\n17646 14614 18295 14993 18959 15378 19640 15769 20332 16166\n16843 14067 17376 14353 17919 14642 18475 14934 19040 15231\n16206 13648 16641 13861 17082 14076 17534 14292 17992 14511\n15698 13327 16051 13486 16409 13646 16774 13806 17142 13967\n15284 13077 15570 13198 15858 13318 16152 13438 16447 13558\n14927 12869 15157 12965 15389 13059 15625 13152 15859 13245\n14590 12675 14776 12755 14962 12833 15149 12911 15335 12988\n14345 12538 14499 12614 14652 12690 14805 12764 14955 12837\n14261 12501 14399 12589 14535 12675 14671 12761 14804 12846\n13773 12177 13882 12262 13988 12347 14095 12431 14196 12514\n12632 11391 12687 11450 12739 11507 12788 11563 12832 11618\n11121 10333 11111 10351 11095 10367 11075 10380 11049 10392\n40212 39745 39736 39588 39226 39418 38687 39235 38108 39039\n42591 35295 43202 35765 43815 36238 44436 36714 45052 37193\n51069 28604 52690 28903 54344 29201 56038 29500 57758 29800\n39726 25661 40701 26010 41692 26361 42705 26715 43727 27071\n28796 22094 28970 22094 29137 22090 29302 22080 29455 22065\n26406 18818 26693 19028 26978 19238 27264 19448 27545 19660\n16667 13638 16622 13541 16568 13438 16508 13330 16436 13215\n13028 11363 12864 11484 12688 11606 12502 11729 12303 11851\n8036 8017 8019 7960 7997 7900 7972 7837 7942 7770\n9043 8667 8880 8784 8708 8902 8526 9020 8334 9139\n5601 5111 5684 5150 5766 5188 5850 5227 5933 5265\n6196 5513 6270 5675 6345 5840 6420 6008 6494 6179\n2469 2258 2543 2316 2619 2376 2696 2437 2774 2498\n5294 4151 5445 4287 5598 4424 5756 4564 5915 4707', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]]
Вот ссылка на исходный документ: ПРОГНОЗ ГОДОВОГО НАСЕЛЕНИЯ НА УРОВНЕ РАЙОНА ПО ПЯТИЛЕТНИМ ВОЗРАСТНЫМ ГРУППАМ И ПОЛУ С 2012 ПО 2031 ГОД В ИНДИИ (таблицы начинаются на стр. 45)>
Подробнее здесь:
https://stackoverflow.com/questions/791 ... pdf-to-csv
1731597225
Anonymous
Я работаю над демографическими прогнозами для каждого округа Индии. В Индии не проводилось переписи населения с 2011 года, поэтому использовались демографические прогнозы. В моем проекте анализируются некоторые переменные, связанные с детьми на районном уровне, поэтому мне нужен прогноз по детям в возрасте до 6 лет. Теперь проблема, с которой я сталкиваюсь, заключается в том, что демографические прогнозы находятся в pdf-файле объемом 1300 или более страниц. и каждая страница содержит две таблицы. Я пробовал анализировать данные с помощью pypdf, pdfplumber и различных других библиотек, pdfplumber, по крайней мере, смог прочитать текст и предоставить выходные данные. Но вывод довольно беспорядочный: в анализируемых таблицах много None и "\n". Я хочу, чтобы таблица получилась точно или несколько похожей на то, как она выглядит в pdf-файле: [img] [/img] Я использую следующий код: [code]import pdfplumber page_index = 52 # ordinal number of the page with the table of interest with pdfplumber.open(r"filepath.pdf") as pdf: first_page = pdf.pages[page_index] tables = first_page.extract_tables() for table in tables: print(table) [/code] Приведенный выше код дал следующий результат: [code][['', 'State: Jammu & Kashmir (01)', None, None, None, None, None, None, None, None, None, None, None, '', '', 'District: Kupwara(01)', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ''], ['', 'Single\nages', '', '2012', None, None, None, '', '', '2013', None, None, None, '', '', '2014', None, None, None, '', '', '2015', None, None, None, '', '', '2016', None, None, None, ''], [None, None, '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', ''], ['All ages\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15-19\n20-24\n25-29\n30-34\n35-39\n40-44\n45-49\n50-54\n55-59\n60-64\n65-69\n70-74\n75-79\n80+', None, '483826 402010 493551 407895 503372 413810 513290 419757 523304 425735\n16024 13348 17045 14110 18097 14889 19181 15686 20297 16501\n15367 13066 16229 13673 17115 14293 18027 14926 18964 15572\n14865 12857 15589 13336 16333 13823 17096 14321 17880 14827\n14493 12706 15099 13080 15721 13460 16358 13847 17010 14240\n14225 12599 14732 12889 15250 13184 15780 13483 16322 13785\n14035 12518 14459 12745 14890 12973 15331 13204 15780 13437\n13899 12450 14253 12629 14613 12808 14979 12988 15351 13169\n13790 12380 14087 12524 14388 12669 14693 12813 15001 12957\n13683 12291 13934 12413 14186 12534 14441 12654 14697 12774\n13552 12169 13765 12277 13978 12384 14191 12490 14404 12594\n13454 12048 13639 12153 13824 12256 14007 12359 14190 12460\n13442 11962 13614 12076 13785 12189 13954 12302 14122 12413\n13089 11649 13235 11761 13379 11871 13521 11981 13661 12090\n12205 10997 12302 11083 12396 11167 12487 11250 12573 11331\n11009 10137 11046 10185 11078 10229 11105 10272 11126 10313\n41762 40033 41537 40018 41277 39989 40983 39946 40653 39888\n39253 32745 39930 33260 40611 33779 41294 34302 41981 34828\n43098 26918 44640 27264 46217 27611 47830 27958 49480 28307\n34802 23773 35766 24154 36748 24538 37748 24925 38766 25314\n27607 21850 27869 21918 28124 21981 28373 22037 28615 22088\n24748 17648 25093 17887 25435 18127 25777 18368 26117 18610\n16628 13938 16660 13895 16683 13846 16698 13791 16703 13730\n13577 10678 13495 10818 13402 10959 13298 11100 13181 11241\n8000 8191 8019 8167 8033 8138 8043 8106 8050 8071\n9643 8034 9546 8162 9439 8291 9323 8420 9197 8551\n5153 4875 5244 4924 5335 4973 5427 5022 5519 5071\n5773 4703 5860 4861 5947 5022 6034 5186 6121 5353\n2102 1963 2173 2020 2246 2079 2320 2139 2396 2200\n4546 3482 4692 3612 4840 3745 4992 3880 5147 4018', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]], [['', 'State: Jammu & Kashmir (01)', None, None, None, None, None, None, None, None, None, None, None, '', '', 'District: Kupwara(01)', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ''], ['', 'Single\nages', '', '2017', None, None, None, '', '', '2018', None, None, None, '', '', '2019', None, None, None, '', '', '2020', None, None, None, '', '', '2021', None, None, None, ''], [None, None, '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', ''], ['All ages\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15-19\n20-24\n25-29\n30-34\n35-39\n40-44\n45-49\n50-54\n55-59\n60-64\n65-69\n70-74\n75-79\n80+', None, '532402 430975 541576 436241 550825 441532 560231 446849 569633 452193\n21404 17303 22540 18120 23705 18953 24903 19802 26128 20667\n19890 16203 20839 16846 21811 17500 22811 18166 23831 18844\n18649 15316 19437 15814 20243 16320 21070 16834 21914 17357\n17646 14614 18295 14993 18959 15378 19640 15769 20332 16166\n16843 14067 17376 14353 17919 14642 18475 14934 19040 15231\n16206 13648 16641 13861 17082 14076 17534 14292 17992 14511\n15698 13327 16051 13486 16409 13646 16774 13806 17142 13967\n15284 13077 15570 13198 15858 13318 16152 13438 16447 13558\n14927 12869 15157 12965 15389 13059 15625 13152 15859 13245\n14590 12675 14776 12755 14962 12833 15149 12911 15335 12988\n14345 12538 14499 12614 14652 12690 14805 12764 14955 12837\n14261 12501 14399 12589 14535 12675 14671 12761 14804 12846\n13773 12177 13882 12262 13988 12347 14095 12431 14196 12514\n12632 11391 12687 11450 12739 11507 12788 11563 12832 11618\n11121 10333 11111 10351 11095 10367 11075 10380 11049 10392\n40212 39745 39736 39588 39226 39418 38687 39235 38108 39039\n42591 35295 43202 35765 43815 36238 44436 36714 45052 37193\n51069 28604 52690 28903 54344 29201 56038 29500 57758 29800\n39726 25661 40701 26010 41692 26361 42705 26715 43727 27071\n28796 22094 28970 22094 29137 22090 29302 22080 29455 22065\n26406 18818 26693 19028 26978 19238 27264 19448 27545 19660\n16667 13638 16622 13541 16568 13438 16508 13330 16436 13215\n13028 11363 12864 11484 12688 11606 12502 11729 12303 11851\n8036 8017 8019 7960 7997 7900 7972 7837 7942 7770\n9043 8667 8880 8784 8708 8902 8526 9020 8334 9139\n5601 5111 5684 5150 5766 5188 5850 5227 5933 5265\n6196 5513 6270 5675 6345 5840 6420 6008 6494 6179\n2469 2258 2543 2316 2619 2376 2696 2437 2774 2498\n5294 4151 5445 4287 5598 4424 5756 4564 5915 4707', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]] [['', 'State: Jammu & Kashmir (01)', None, None, None, None, None, None, None, None, None, None, None, '', '', 'District: Kupwara(01)', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, ''], ['', 'Single\nages', '', '2017', None, None, None, '', '', '2018', None, None, None, '', '', '2019', None, None, None, '', '', '2020', None, None, None, '', '', '2021', None, None, None, ''], [None, None, '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', '', '', 'Males', '', '', 'Females', ''], ['All ages\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15-19\n20-24\n25-29\n30-34\n35-39\n40-44\n45-49\n50-54\n55-59\n60-64\n65-69\n70-74\n75-79\n80+', None, '532402 430975 541576 436241 550825 441532 560231 446849 569633 452193\n21404 17303 22540 18120 23705 18953 24903 19802 26128 20667\n19890 16203 20839 16846 21811 17500 22811 18166 23831 18844\n18649 15316 19437 15814 20243 16320 21070 16834 21914 17357\n17646 14614 18295 14993 18959 15378 19640 15769 20332 16166\n16843 14067 17376 14353 17919 14642 18475 14934 19040 15231\n16206 13648 16641 13861 17082 14076 17534 14292 17992 14511\n15698 13327 16051 13486 16409 13646 16774 13806 17142 13967\n15284 13077 15570 13198 15858 13318 16152 13438 16447 13558\n14927 12869 15157 12965 15389 13059 15625 13152 15859 13245\n14590 12675 14776 12755 14962 12833 15149 12911 15335 12988\n14345 12538 14499 12614 14652 12690 14805 12764 14955 12837\n14261 12501 14399 12589 14535 12675 14671 12761 14804 12846\n13773 12177 13882 12262 13988 12347 14095 12431 14196 12514\n12632 11391 12687 11450 12739 11507 12788 11563 12832 11618\n11121 10333 11111 10351 11095 10367 11075 10380 11049 10392\n40212 39745 39736 39588 39226 39418 38687 39235 38108 39039\n42591 35295 43202 35765 43815 36238 44436 36714 45052 37193\n51069 28604 52690 28903 54344 29201 56038 29500 57758 29800\n39726 25661 40701 26010 41692 26361 42705 26715 43727 27071\n28796 22094 28970 22094 29137 22090 29302 22080 29455 22065\n26406 18818 26693 19028 26978 19238 27264 19448 27545 19660\n16667 13638 16622 13541 16568 13438 16508 13330 16436 13215\n13028 11363 12864 11484 12688 11606 12502 11729 12303 11851\n8036 8017 8019 7960 7997 7900 7972 7837 7942 7770\n9043 8667 8880 8784 8708 8902 8526 9020 8334 9139\n5601 5111 5684 5150 5766 5188 5850 5227 5933 5265\n6196 5513 6270 5675 6345 5840 6420 6008 6494 6179\n2469 2258 2543 2316 2619 2376 2696 2437 2774 2498\n5294 4151 5445 4287 5598 4424 5756 4564 5915 4707', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]] [/code] Вот ссылка на исходный документ: ПРОГНОЗ ГОДОВОГО НАСЕЛЕНИЯ НА УРОВНЕ РАЙОНА ПО ПЯТИЛЕТНИМ ВОЗРАСТНЫМ ГРУППАМ И ПОЛУ С 2012 ПО 2031 ГОД В ИНДИИ (таблицы начинаются на стр. 45)> Подробнее здесь: [url]https://stackoverflow.com/questions/79169175/cleaning-parsed-data-from-pdf-to-csv[/url]