【发布时间】:2016-11-21 15:12:55
【问题描述】:
我有 10 个单独的 csv 文件中的数据。每个 csv 文件只有一行数据(500000 个数据点,没有标题等)。三个问题:
- 如何将数据转换为一列 500000 行?
- 最好将它们导入一个 numpy 数组:500000 x 10 来分析它们。如果是这样,怎么能做到这一点?
- 或者最好将它们导入到一个 500000 x 10 的 DataFrame 中进行分析。
【问题讨论】:
我有 10 个单独的 csv 文件中的数据。每个 csv 文件只有一行数据(500000 个数据点,没有标题等)。三个问题:
【问题讨论】:
首先,读取所有 10 个 csv:
import os, csv, numpy
import pandas as pd
my_csvs = os.listdir('path to folder with 10 csvs') #selects all files in folder
list_of_columns = []
os.chdir('path to folder with 10 csvs')
for file in my_csvs:
column = []
with open(file, 'r') as f:
reader = csv.reader(f)
for row in reader:
column.append(row)
list_of_columns.append(column)
这就是您获取列表列列表的方式。接下来将它们转换为 pandas df 或 numpy 或任何你觉得可以使用的东西。
【讨论】:
假设您有一个文件名列表files。那么:
df = pd.concat([pd.read_csv(f, header=None) for f in files], ignore_index=True)
df 是一个 10 x 500000 的数据帧。使用df.T 将其设为 500000 x 10
2 和 3 的答案取决于您的任务。
【讨论】: