首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -将数据拆分为csv文件中的列

Python -将数据拆分为csv文件中的列
EN

Stack Overflow用户
提问于 2016-06-08 01:52:48
回答 3查看 37.3K关注 0票数 3

我有一个csv文件中的数据,看起来像这样导入。

代码语言:javascript
复制
import csv

with open('Half-life.csv', 'r') as f:
    data = list(csv.reader(f))

数据将像这样输出到打印出行的位置,如data[0] = ['10', '2', '2']等。

我想要的是在中将数据检索为列,而不是行,在本例中,有3列。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-08 02:09:11

您可以创建三个单独的列表,然后使用csv.reader附加到每个列表。

代码语言:javascript
复制
import csv

c1 = []
c2 = []
c3 = []
with open('Half-life.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        c1.append(row[0])
        c2.append(row[1])
        c3.append(row[2])
票数 6
EN

Stack Overflow用户

发布于 2016-06-08 03:28:04

自动化程度更高、更灵活的Alexander's answer版本

代码语言:javascript
复制
import csv
from collections import defaultdict

columns = defaultdict(list)
with open('Half-life.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        for i in range(len(row)):
            columns[i].append(row[i])
# Following line is only necessary if you want a key error for invalid column numbers
columns = dict(columns)

您还可以将其修改为使用列标题而不是列号。

代码语言:javascript
复制
import csv
from collections import defaultdict

columns = defaultdict(list)
with open('Half-life.csv', 'r') as f:
    reader = csv.reader(f, delimiter=',')
    headers = next(reader)
    column_nums = range(len(headers)) # Do NOT change to xrange
    for row in reader:
        for i in column_nums:
            columns[headers[i]].append(row[i])
# Following line is only necessary if you want a key error for invalid column names
columns = dict(columns)
票数 6
EN

Stack Overflow用户

发布于 2016-06-08 10:40:46

另一种选择是,如果您安装了numpy,您可以使用loadtxt将csv文件读取到numpy数组中。如果您想要更多的列而不是行,那么您可以转置数组(我不太清楚您希望数据是什么样子)。例如:

代码语言:javascript
复制
import numpy as np
# Load data
data = np.loadtxt('csv_file.csv', delimiter=',')
# Transpose data if needs be
data = np.transpose(data)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37686105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档