【问题标题】:Analyzing multiple csv files分析多个csv文件
【发布时间】:2016-11-21 15:12:55
【问题描述】:

我有 10 个单独的 csv 文件中的数据。每个 csv 文件只有一行数据(500000 个数据点,没有标题等)。三个问题:

  1. 如何将数据转换为一列 500000 行?
  2. 最好将它们导入一个 numpy 数组:500000 x 10 来分析它们。如果是这样,怎么能做到这一点?
  3. 或者最好将它们导入到一个 500000 x 10 的 DataFrame 中进行分析。

【问题讨论】:

    标签: python csv numpy pandas


    【解决方案1】:

    首先,读取所有 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 或任何你觉得可以使用的东西。

    【讨论】:

      【解决方案2】:

      假设您有一个文件名列表files。那么:

      df = pd.concat([pd.read_csv(f, header=None) for f in files], ignore_index=True)
      
      1. df 是一个 10 x 500000 的数据帧。使用df.T 将其设为 500000 x 10

      2 和 3 的答案取决于您的任务。

      【讨论】:

      • @deserthiker:您也可以使用 df.as_matrix() 转换为 numpy。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 2021-05-08
      • 2023-02-17
      • 1970-01-01
      相关资源
      最近更新 更多