【问题标题】:Concatenate multiple file rowwise in a single dataframe with the same header name在具有相同标题名称的单个数据框中按行连接多个文件
【发布时间】:2019-09-04 19:25:59
【问题描述】:

我有 400 个 csv 文件,所有文件都包含有 4667 行的单列。每行都有名称和相应的值,例如“A=54,B=56 等等,直到 4667 行。我的问题陈述是: 1.获取变量名并将其放在不同的列 2. 取出对应的变量值,放到列的上一行。

3. 现在,对所有 400 个文件执行此步骤,并将所有相应的值附加到上述行中,即 400 行。

我已经完成了单个文件以及如何处理多个文件。我不知道

import glob
from collections import OrderedDict

path =r'Github/dataset/Raw_Dataset/'
filenames = glob.glob(path + "/*.csv")

dict_of_df = OrderedDict((f, pd.read_csv((f),header=None,names=['Devices'])) for f in filenames)
eda=pd.concat(dict_of_df)

【问题讨论】:

    标签: dataframe concatenation


    【解决方案1】:

    你的意思是串联吗? 你可以像这样使用熊猫:

    import pandas as pd
    
    df1 = pd.DataFrame(columns=["A","B","C","D"],data=[["1","2","3","4"]])
    df2 = pd.DataFrame(columns=["A","B","C","D"],data=[["5","6","7","8"]])
    df3 = pd.DataFrame(columns=["A","B","C","D"],data=[["9","10","11","12"]])
    
    df_concat = pd.concat([df1, df2, df3])
    
    print(df_concat)
    

    结合循环遍历文件夹中以“.csv”结尾的文件,它将是:

    import os
    import pandas as pd
    
    path = r"C:\YOUR\DICTIONARY"
    
    df_concat = pd.DataFrame()
    
    for filename in os.listdir(path):
        if filename.endswith(".csv"): 
            print(filename)
            df_temp = pd.read_csv(path + "\\" + filename)
            df_concat = pd.concat([df_concat, df_temp])
            continue
        else:
            continue
    

    【讨论】:

    • 使用连接单列中的所有值。但是我希望单个文件的所有变量名称(例如 A、B、C)在一行中,而它们的对应值在另一行中,并且类似地将变量的值连接在不同的行而不是列中。
    • @anmol,代码应该做到这一点。您的 csv 文件是否有另一个分隔符而不是“,”?如果是,您需要像这样设置它 pd.read_csv(delimiter=";")。否则,您能否制作两个文件的屏幕截图或示例以及这两个文件的所需输出之一?
    猜你喜欢
    • 2017-12-01
    • 2019-05-24
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    相关资源
    最近更新 更多