忍者ブログ
  • 2024.03«
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • » 2024.05
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/04/27 21:32 】 |
PythonでExcelをTSVに変換してみた
pythonでExcelからTSVに変換してみた。
DataFrameでもできるのだけども、ストリーム系でないとメモリをめっちゃ食ってしまう。
ソース

37万件のデータで実施した場合、
■今回のソースの場合
$ time python excel2tsv_e.py KEN_ALL.xlsx > ken_all2.txt 

real    0m38.720s
user    0m38.614s
sys     0m0.105s

■DataFrameを使った場合
$ time python excel2tsv_p.py KEN_ALL.xlsx

real    0m47.467s
user    0m47.094s
sys     0m1.139s

lxml速い。
startイベントでendイベントの関数を生成するの結構良いかも。
あと、4階層以下は都度都度メモリ解放しなくしてるのもうまく働いている。
DataFrameだと最大800Mまでメモリを使用するが、今回のだと50Mくらい。
            for event, elem in parser.read_events():
                if event == "end":
                    yield event, elem, stack
                    stack.pop()
                    if 1 <= len(stack) <= 2:
                        stack[-1].remove(elem)
                    level -= 1
                else:
                    level += 1
                    stack.append(elem)
                    yield event, elem, stack

拍手[1回]

PR
【2023/02/19 10:57 】 | Python | 有り難いご意見(0)
<<[Solved] OEM unlock greyed out | ホーム | mkfifoを使わずに、プログラムの循環パイプ(yourPG | interpreter | yourPG)サンドウィッチ>>
有り難いご意見
貴重なご意見の投稿















前ページ | ホーム | 次ページ

忍者ブログ [PR]