回答ではないのですが、具体的な情報を追記されると具体体な回答が得られやすい気がするので・・・
今の質問内容から閲覧者に何がわかるかといえば以下の程度になります。
CSVのサイズが2GB程度で14個ある
それを全て縦方向に連結しようとしている
Linuxの搭載メモリーは32GBである
一つのデータフレームの具体的な大きさはCSVの中身によって多少変動すると思いますので、データフレームがどのようなものなのか(各列のデータ型や、列数、行数)を明記すると閲覧者にもより状況が分かり易くなると思います。そうなれば具体的な方法論もコメントしやすくなると思います。
例を挙げますと
A,B,C,D
A,1.1,10000,0
B,2.2,20000,0
C,3.3,30000,0
...データ行がトータルで10行(163 byte)
このようなデータ行が10行のCSVを2通りの読み方でデータフレームを作った場合、その特徴を調べてみると消費量がそこそこ変わることがわかります。
python
1import numpy as np
2import pandas as pd
3
4d1 = pd.read_csv('test.txt', dtype={'B': np.float32, 'C': np.int32, 'D': np.int8})
5d2 = pd.read_csv('test.txt')
6
7print('--- d1 ---')
8print(d1.info())
9print('--- d2 ---')
10print(d2.info())
11
12====>
13--- d1 ---
14<class 'pandas.core.frame.DataFrame'>
15RangeIndex: 10 entries, 0 to 9
16Data columns (total 4 columns):
17A 10 non-null object
18B 10 non-null float32
19C 10 non-null int32
20D 10 non-null int8
21dtypes: float32(1), int32(1), int8(1), object(1)
22memory usage: 250.0+ bytes
23None
24--- d2 ---
25<class 'pandas.core.frame.DataFrame'>
26RangeIndex: 10 entries, 0 to 9
27Data columns (total 4 columns):
28A 10 non-null object
29B 10 non-null float64
30C 10 non-null int64
31D 10 non-null int64
32dtypes: float64(1), int64(2), object(1)
33memory usage: 400.0+ bytes
34None
データの特徴に応じて適切な型を選べばメモリーの節約になる例ですが、質問にどうやって読み込んだかが書いてないと、閲覧者からはあなたがd1のようにメモリーを節約する工夫をしているのか、d2のように素朴に読み込んだだけなのかがわかりません。
また連結の目的は全データに対する分析だと思いますが、それが全ての列を必要とするものなのかそうでないかといったことも閲覧者にはわかりません。
どんなデータをどういう目的でどういう手段で処理しようとしているか状況がよくわかるようになるべく詳しく書くのが質問の際のポイントではないでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/01 05:23