4
4
# --------------------------------------------------------------------------------
5
5
# --- Writing pandas DataFrame to different formats
6
6
# --------------------------------------------------------------------------------
7
- # The
7
+ def writeDataFrameToFormat (df , filename , fformat ):
8
+ """
9
+ Write a dataframe to disk based on user-specified fileformat
10
+ - df: pandas dataframe
11
+ - filename: filename
12
+ - fformat: fileformat in: ['csv', 'outb', 'parquet']
13
+ """
14
+
15
+ if fformat == 'outb' :
16
+ dataFrameToOUTB (df , filename )
17
+ elif fformat == 'parquet' :
18
+ dataFrameToParquet (df , filename )
19
+ elif fformat == 'csv' :
20
+ dataFrameToCSV (df , filename , sep = ',' , index = False )
21
+ else :
22
+ raise Exception ('File format not supported for dataframe export `{}`' .format (fformat ))
23
+
24
+ def writeDataFrameAutoFormat (df , filename , fformat = None ):
25
+ """
26
+ Write a dataframe to disk based on extension
27
+ - df: pandas dataframe
28
+ - filename: filename
29
+ """
30
+ if fformat is not None :
31
+ raise Exception ()
32
+ base , ext = os .path .splitext (filename )
33
+ ext = ext .lower ()
34
+ if ext in ['.outb' ]:
35
+ fformat = 'outb'
36
+ elif ext in ['.parquet' ]:
37
+ fformat = 'parquet'
38
+ elif ext in ['.csv' ]:
39
+ fformat = 'csv'
40
+ else :
41
+ print ('[WARN] defaulting to csv, extension unknown: `{}`' .format (ext ))
42
+ fformat = 'csv'
43
+
44
+ writeDataFrameToFormat (df , filename , fformat )
8
45
9
46
def writeFileDataFrames (fileObject , writer , extension = '.conv' , filename = None , ** kwargs ):
10
47
"""
@@ -35,7 +72,6 @@ def writeFileDataFrames(fileObject, writer, extension='.conv', filename=None, **
35
72
else :
36
73
writeDataFrame (df = dfs , writer = writer , filename = filename , ** kwargs )
37
74
38
-
39
75
def writeDataFrame (df , writer , filename , ** kwargs ):
40
76
"""
41
77
Write a dataframe to disk based on a "writer" function.
@@ -47,16 +83,10 @@ def writeDataFrame(df, writer, filename, **kwargs):
47
83
48
84
# --- Low level writers
49
85
def dataFrameToCSV (df , filename , sep = ',' , index = False , ** kwargs ):
50
- base , ext = os .path .splitext (filename )
51
- if len (ext )== 0 :
52
- filename = base = '.csv'
53
86
df .to_csv (filename , sep = sep , index = index , ** kwargs )
54
87
55
88
def dataFrameToOUTB (df , filename , ** kwargs ):
56
89
from .fast_output_file import writeDataFrame as writeDataFrameToOUTB
57
- base , ext = os .path .splitext (filename )
58
- if len (ext )== 0 :
59
- filename = base = '.outb'
60
90
writeDataFrameToOUTB (df , filename , binary = True )
61
91
62
92
def dataFrameToParquet (df , filename , ** kwargs ):
0 commit comments