【问题标题】:Update and concatenate DataFrame with hierarchy levels in a for loop在 for 循环中更新和连接 DataFrame 与层次结构级别
【发布时间】:2019-07-27 02:46:55
【问题描述】:

我在一个目录中有一组文件(25 个文件)。我需要将所有文件数据上传到单个 DataFrame 中,而不会丢失文件名的引用。

文件结构(df):

date        Var1 Var2 Var3
1/01/2014   1    2    1
2/01/2014   12   20   10
...
31/01/2014  5    7    8

我正在做以下事情

DATA_fin=pd.DataFrame()
m=0
for files in d:
    m=m+1
    df = pd.read_csv(filename)

    if m==1:
        DATA_fin=df

    else:
        gh=d[0:m]
        DATA_fin=pd.concat([DATA_fin, df], axis=1, keys=gh)

上述代码在第一次迭代后不起作用,因为Data_findf有不同的级别。

我想得到一个最终的DataFrame如下:

File 1                      File 2   
date        Var1 Var2 Var3  date        Var1 Var2 Var3
1/01/2014   1    2    1     1/01/2014   11   23   12
2/01/2014   12   20   10    2/01/2014   2    0    1 
...                         ... 
31/01/2014  5    7    8     31/01/2014  1    4    5

有什么建议吗?

【问题讨论】:

    标签: python pandas dataframe for-loop concatenation


    【解决方案1】:

    我不确定您的最终 DataFrame 是否真的应该像这样。我建议:

    dfs = []
    for file in d:
        df = pd.read_csv(file)
        df['File'] = file
        dfs.append(df)
    
    df = pd.concat(dfs)
    

    现在每一行都知道它来自哪里,并且可以轻松地重新排列 DataFrame。

    【讨论】:

      猜你喜欢
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 2021-12-13
      • 2013-07-04
      • 2023-04-03
      • 2016-10-10
      相关资源
      最近更新 更多