python数组tocsv
‘壹’ 利用python如何将数据写到CSV文件中
如果你的数据是列表格式,可以使用一个迭代器,将数据写入文件,同时添加必要的分隔符以构成csv文件
如果数据是字典格式,需要考虑使用换行符或者其他特殊符号来分割每个字典元素(包括键和值)。键和值可以考虑使用和之前不重复的分隔符进行分割。
这样就构成了一个csv文件(csv使用分隔符分割值的文件)
操作方法如下:
1,使用读写追加的方式打开csv文件。
2,找到csv文件的结尾。
3,在结尾使用和之前csv使用的分割相同的格式进行数据添加。
4,关闭文件
‘贰’ python中用to_csv()储存数据为什么只能存储到一条数据
这段循环逻辑有问题, 因为最后的2行代码都在循环体里面,这导致了每次to_csv只导出一条数据。最后程序运行完之后,csv文件里的最终结果只是最后一条数据而已。
而且这段程序过于繁杂了,有很多多余的计算,当数据多的时候会有性能问题。可以用下面的方法, 要更简洁。
#直接把profile(也就是result字段里的内容)放进DataFrame参数里面
#然后在把需要的字段过滤一下,这样就可以1行代码解决你的问题了,当然下面的为了让代码更易读,我分成了3行。
profile=responer.json()(['content']['positionTrsult']['result'])
profileColumns=['positionName','city','ecation','workYear']
f=pd.DataFrame(profile,columns=profileColumns)
#pandas在很多操作的时候,能得到我们想象中的结果,所以多试试,会有很多惊喜的~
然后看你是刚用pandas(我也是刚学习pandas),给你一个建议, 就是涉及到pandas的操作就【尽量】不要用循环,这对以后处理大量数据的时候会产生非常大的性能问题的。我用循环处理10W+的数据的时候等了十分钟都没有得出结果来。。。CPU是8700k,内存32G都不行...
‘叁’ 用python把list里的数据写入csv
result=[(u'appleiOS',u'appleiOS',u'$400'),
(u'likenew',u'5',u'$149'),
(u'appleiOS',u'appleiOS',u'$900'),
(u'excellent',u'6Plus',u'$550'),
(u'likenew',u'appleiOS',u'$279'),
(u'likenew',u'4',u'$59')]
withopen('data.csv','wb')asf:
foriteminresult:
line=','.join(item)+' '
f.write(line.encode('utf-8'))
‘肆’ python用dataframe的to_csv方法写入到CSV文件,如果是数据列,以0开头的时候CSV文件里面不显示
修改csv列格式没用,保存不了,下次打开还是原样,如果带零列的数据类型是数值,需要将其转换成字符串类型:df['带零列']=df['带零列'].astype(str)
还是不行的话,这就是打开csv的工具的原因了,你很有可能是用Excel打开的csv文件,其实质还是字符串,如果你用Notepad++或者记事本打开,显示就是带0的。
如果想还是用Excel打开,看到带0的,可以这样解决:df['带零列']='\t'+df['带零列'],即在字符串前加个横向制表符,这样再用Excel打开就显示没问题了。
希望能帮到你。
‘伍’ Python+Pandas入门2——导出csv
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 ‘
’
字符串,默认为 ‘
’
在输出文件中使用的换行字符或字符序列
12、quoting : optional constant from csv mole
*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”
‘陆’ 怎么将Python的运行结果导出为csv格式
兄弟,python下面自带了csv模块,直接import调用就行了
将内存中的数据写入到csv文件的话,直接open一个新文件,用csv下的writer方法就可以将数据写入到csv本地文件