Python+Pandas入门2——导出csv

Python+Pandas入门2——导出csv,第1张

1、to_csv()

1、path_or_buf =None: string or file handle, default None

   File path or object, if None is provided the result is returned as a string.

字符串文件句柄,默认无文件

路径或对象,如果没尘槐有提供,结果将返回为字符串。

2、sep : character, default ‘,’

   Field delimiter for the output file.

  默认字符 ‘ ,’

  输出文件的字段分隔符。

3、na_rep : string, default ‘’

   Missing data representation

  字符串,默认为 ‘’

  浮点数格式字符串

4、float_format : string, default None

   Format string for floating point numbers

  字符串,默认为 None

  浮点数格式字符串

5、columns : sequence, optional Columns to write

   顺序,可选列写入

6、header : boolean or list of string, default True

Write out the column names. If a list of strings is given it is assumed to be aliases for the column names

   字符串或布尔列表,默认为true

   写出列名。如果给定字符串列表,则假定为列名的别名。

7、index : boolean, default True

   Write row names (index)

  布尔值,默认为Ture

  写入行名称(索引

8、index_label : string or sequence, or False, default None

  *Column label for index column(s) if desired. If None is given, and header and index are True, then the index names are used. A sequence should be given if the DataFrame uses MultiIndex. If False do not print fields for index names. Use index_label=False for easier importing in R

  字符串或序列,或False,默认为None

  如果需要,可以使用索引列的列标签。如果没有给出,且标题和索引为True,则使用索引名称。如果数据文件使用多索引,则应该使用这个序列。如果值为False,不打印索引字段。在R中使用  index_label=False 更容易导入索引.

9、encoding : string, optional

   编码:字符串,可选

  表示在输出文件中使用态兄迅的编码的字符串,Python 2上默认为“ASCII”和Python 3上默认为“UTF-8”。

10、compression : string, optional

   字符串,可选项

  表示在输出文件中使用的压缩的字符串,允许值为“gzip”、“bz2”、“xz”,仅在第一个参数是文件名时使用。

11、line_terminator : string, default ‘\n’

   字符串,默认为 ‘\n’

  在输出文件中使用的换行字符或字符序列帆此

12、quoting : optional constant from csv module

  *CSV模块的可选常量

  输出是否用引号,默认参数值为0,表示不加双引号,参数值为1,则每个字段都会加上引号,数值也会被当作字符串看待

13、quotechar : string (length 1), default ‘”’

  *字符串(长度1),默认"

  当quoting=1可以指定引号字符为双引号"或单引号'

14、doublequote : boolean, default True

   布尔,默认为Ture

  控制一个字段内的quotechar

15、escapechar : string (length 1), default None

   字符串(长度为1),默认为None

  在适当的时候用来转义sep和quotechar的字符

16、chunksize : int or None

   int或None

  一次写入行

17、tupleize_cols : boolean, default False

   布尔值 ,默认为False

从版本0.21.0中删除:此参数将被删除,并且总是将多索引的每行写入CSV文件中的单独行

  (如果值为false)将多索引列作为元组列表(如果TRUE)或以新的、扩展的格式写入,其中每个多索引列是CSV中的一行。

18、date_format : string, default None

   字符串,默认为None

  字符串对象转换为日期时间对象

19、decimal : string, default ‘.’

   字符串,默认’。’

  字符识别为小数点分隔符。例如。欧洲数据使用 ​​’,’

20、mode : str

   模式:值为‘str’,字符串

  Python写模式,默认“w”

此前一直使用HIVE的Insert overwrite到本地目录的方法进行文件导出,但问题多多。主要原因是分隔符经常出现在字段中,实 *** 中用竖杠|分隔问题较少。

insert overwrite local directory '/url/lxb/hive'

row format delimited

fields terminated by ','

select * from table_name limit 100

此外也尝试使用HIVE -E的方法,再通过sed 's/x01/,/g'命令进行文件过滤。

两种效果均不是很理想,究其原因,主要是两种方法导出的文件都不返盯是标准CSV。

目前使用比较顺畅的方式是通过spark-shell2, 先把Hive表转化为DataFrame,再基于DataFrame.writer.csv()(DataFrameWriter.csv)导出到HDFS。

df = spark.sql("select * from test.student3")

df.write.csv("/HDFS目录")

hadoop fs -get /HDFS目录 XXX

----------------------------------- 2019-08-05更新--------------------------------------

beeline -n hive -u jdbc: hive2://XXXX:10000 --verbose=true --outputformat=csv2 -e "XXXXXXXX" >>XXX.csv

通过beeline导出HIVE数据至CSV较为稳定。

然后导出的数据编码为utf-8,需要进行转码。

iconv -f UTF-8 -t GBK XXX.csv to XXX_gbk.csv

有时漏辩和候转GBK会报错,可以选另外两种Excel可以直接打灶裂开的编码格式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11974602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存