python批量合并csv文件_在python中转换和合并csv文件的快速方法?

本文介绍了如何在numpy的genfromtxt函数中处理文本文件的头部信息,包括默认的浮点型导致的字符串转nan问题,以及使用dtype=None自动识别数据类型和结构化数组的创建。还展示了数据的转置、输出和文件保存操作。
摘要由CSDN通过智能技术生成

在genfromtxt中有多种处理头的方法。默认情况下,将它们视为数据的一部分:In [6]: txt="""time,topic1,topic2,country

...: 2015-10-01,20,30,usa

...: 2015-10-02,25,35,usa"""

In [7]: data=np.genfromtxt(txt.splitlines(),delimiter=',',skip_header=0)

In [8]: data

Out[8]:

array([[ nan, nan, nan, nan],

[ nan, 20., 30., nan],

[ nan, 25., 35., nan]])

但是由于默认的dtype是float,所以字符串都显示为nan。在

您可以将它们视为标头-结果是一个结构化数组。标题现在出现在data.dtype.names列表中。在

^{pr2}$

使用dtype=None,让它选择数据类型。基于第一行中的字符串,它以S10的形式加载所有内容。在In [11]: data=np.genfromtxt(txt.splitlines(),delimiter=',',dtype=None)

In [12]: data

Out[12]:

array([['time', 'topic1', 'topic2', 'country'],

['2015-10-01', '20', '30', 'usa'],

['2015-10-02', '25', '35', 'usa']],

dtype='|S10')

此矩阵可以转置、打印或写入csv文件:In [13]: data.T

Out[13]:

array([['time', '2015-10-01', '2015-10-02'],

['topic1', '20', '25'],

['topic2', '30', '35'],

['country', 'usa', 'usa']],

dtype='|S10')

因为我使用genfromtxt来加载,所以我可以使用savetxt来保存:In [26]: with open('test.txt','w') as f:

np.savetxt(f, data.T, delimiter=',', fmt='%12s')

np.savetxt(f, data.T, delimiter=';', fmt='%10s') # simulate a 2nd array

....:

In [27]: cat test.txt

time, 2015-10-01, 2015-10-02

topic1, 20, 25

topic2, 30, 35

country, usa, usa

time;2015-10-01;2015-10-02

topic1; 20; 25

topic2; 30; 35

country; usa; usa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值