【问题标题】:Reading CSV files in a loop using pandas, then concatenating them使用 pandas 循环读取 CSV 文件,然后将它们连接起来
【发布时间】:2018-03-12 04:36:57
【问题描述】:

我有 10 个 csv 文件,分别命名为 data_run1_all.csvdata_run2_all.csv、...、data_run10_all.csv。 CSV 文件的列相同,但行不同。

现在我将它们一一导入到df_run1df_run2、...、df_run10

我可以使用循环来导入它们吗?比如:i=1 to 10, df_runi=pandas.read_csv('data_runi_all.csv')

我问是因为每个数据框的数据分析、绘图等也是相同的。每个数据帧的所有代码重复 10 次。如果我可以使用循环执行 10 次,代码会更短且可读性更强。

【问题讨论】:

    标签: python list pandas dataframe


    【解决方案1】:

    循环读取您的 CSV 文件并致电 pd.concat

    file_name = 'data_run{}_all.csv'
    df_list = []
    for i in range(1, 11):
        df_list.append(pd.read_csv(file_name.format(i))
    
    df = pd.concat(df_list)
    

    或者,您可以在推导式中构建列表:

    file_name = 'data_run{}_all.csv'
    df = pd.concat([pd.read_csv(file_name.format(i)) for i in range(1, 11)])
    

    【讨论】:

      【解决方案2】:

      您需要将df_run 设为一个列表。你可以这样做:

      df_run = []
      for i in range(1,10):
        df_run.append(pandas.read_csv('data_run{0}_all.csv'.format(i))
      for df in df_run:
        // Do your processing
      

      或者在一个循环中做所有事情,避免有列表。

      【讨论】:

        猜你喜欢
        • 2016-03-05
        • 2020-07-19
        • 1970-01-01
        • 2018-12-14
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多