用python处理csv文件,最好可以将里面的文本信息转成一个二维数组的形式,具体如下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python处理csv文件,最好可以将里面的文本信息转成一个二维数组的形式,具体如下相关的知识,希望对你有一定的参考价值。

输出时,我想单独获取A列信息作为字典的索引,然后将BCD三列合在一起作为字典的值,并去除E列,最后我可以用一个函数处理BCD的值,请求大神不吝赐教!

思路如下:

    导入csv库;

    打开文件,并用csv库函数reader读入数据;

    csv读入的数据是一行一行的,所以通过循环语句把读到的数据放入到数组里

import csv # 必要库导入
filepath = 'test.csv' # 定义文件名称,本文件要与当前的.py文件要在同一文件夹下,不然要用绝对路径
with open(filepath,'r') as csvfile: # 打开数据文件
    reader = csv.reader(csvfile) # 用csv的reader函数读取数据文件
    header = next(reader) # 读取数据文件的表头
    data = [] # 定义一个空数组用于保存文件的数据
    for line in reader: # 循环读取数据文件并保存到数组data中
        data.append(line) # line是个一维数组,是数据文件中的一行数据
print(header) # 表头
print(data) # 读取的二维数组

参考技术A

不知道你的csv行内分隔符是什么,这里假设是逗号。程序处理book1.csv生成book2.txt,代码如下:

content = []
with open('book1.csv', 'r') as fr:
    with open('book2.txt', 'w') as fw:
        content = fr.readlines()
        print(content)
        for line in content:
            line = line.split(',')
            print(line)
            fw.write(line[0] + ',' + line[1] + line[2] + line[3] + '\\n')
     fw.close()
 fr.close()

追问

为什么我运行后print没有输出内容,one1.txt里也没有东西

追答

1、是不是版本问题,我用的是python3

2、可能没找到csv文件,把文件名写成绝对路径比如'C:\\File\\Amazon.csv'这样看看
3、最好把python保存在一个py文件里执行,并且把需要处理的文件也放到同一个目录下,处理起来比较方便

参考技术B python的csv模块可用追问

确实可用,但是只能输出表格内容,却不知道怎么处理表格内容

如何将多个csv按行合并?(不是首尾相接的按列合并)

如图,每个csv均含有ABC三列,要求合并之后为行式为ABCABCABCABC……而不是在第一个csv的最后一行,开始第二个csv的数据。谢谢各位

csv是文本格式文件,一般用逗号分隔数据项,可以这样操作,写个小程序,将n个文件分别读入n个列表,假设你的数据量相同,做一个循环,将列表项逐一相连,写入一个新列表,最后导出文本格式为csv就可以了。如果数量不多,且不用重复操作,直接用excel复制粘贴也可以。 参考技术A #看一下zip的用法
import csv
import pandas as pd
data_a = pd.read_csv('a.csv', encoding='utf-8')
data_b = pd.read_csv('b.csv', encoding='utf-8')
data_c = list(zip(data_a,data_b))
print(c)
参考技术B 我也想知道咋做,我只知道好多能顺着往下合并 参考技术C 你好,请问这个问题你解决了吗?可以分享下办法吗?

以上是关于用python处理csv文件,最好可以将里面的文本信息转成一个二维数组的形式,具体如下的主要内容,如果未能解决你的问题,请参考以下文章

python用pandas工具包来处理.csv文件,包括读写和切片

用python处理文本数据 学到的一些东西

python中怎么处理csv文件

Python--csv文件处理

如何将多个csv按行合并?(不是首尾相接的按列合并)

说说如何利用 Python 处理 CSV 文件