首页 > 解决方案 > 如何解析多个 n 大小数组中的单个 csv 文件列?

问题描述

假设:

  1. 我们正在处理格式正确的 csv 文件。
  2. csv 文件包含一列(因此,文件中没有只是\n's)
  3. 有可变数量的行

我的问题:考虑以下代码部分。

import csv
def ReadCsv(pathname, chunkSize):
    with open(pathname) as file:
        reader = csv.reader(file)
        row_count = sum(1 for row in reader)
        columnChucks = [] # This will be a 2 dim array of
                          # which will contains a list of
                          # chunkSize arrays that contian
                          # the data cells of that block

将 csv 文件的第一列(并且仅在这种情况下)拆分为包含数据单元列表的列表的最佳方法是什么?chuckSized

注意 1:如果chunkSize是 7 并且 csv 文件有 8 个单元格,那么最后一个单元格应该被忽略。注意 2:chunkSize大于 csv 文件中单元格的情况将被忽略。

例子

输入

块大小 = 2

.csv 文件 =

1
2
3
4
5
6

结果

print(columnChunks)应该相当于

[ [1,2]
  [3,4]
  [5,6] ]

标签: pythoncsv

解决方案


假设您的块大小将成为文档长度的一个因素,以下示例可能会解决您的问题。

import pandas
df = pandas.DataFrame([1,2,3,4,5,6,7,8]) #replace with the readcsv output
chunksize = 2
ll = len(df[0])
result = df.transpose().values.reshape(ll//chunksize,chunksize)
print(result)

推荐阅读