【问题标题】:Pandas: Ideas on how to design dataframe and append multiple csv filesPandas:关于如何设计数据框和附加多个 csv 文件的想法
【发布时间】:2021-05-31 15:53:25
【问题描述】:

大家好,我是熊猫新手,

我有一组非常不方便的 csv 数据,如下所示:

PMSN01001_PFT0_20181212_Crop_AGE.jpg_OCR.csv
PMSN01001_PFT0_20181212_Crop_GENDER.jpg_OCR.csv
PMSN01001_PFT0_20181212_Crop_HEIGHT.jpg_OCR.csv
PMSN01001_PFT0_20181212_Crop_WEIGHT.jpg_OCR.csv
...
PMSN01002_PFT0_20181212_Crop_AGE.jpg_OCR.csv
PMSN01002_PFT0_20181212_Crop_GENDER.jpg_OCR.csv
PMSN01002_PFT0_20181212_Crop_HEIGHT.jpg_OCR.csv
PMSN01002_PFT0_20181212_Crop_WEIGHT.jpg_OCR.csv
...

每个 csv 文件都有一个简单的单个字符串或数字,如下所示:

PMSN01001*AGE*.csv       54
PMSN01001*GENDER*.csv    male
PMSN01001*HEIGHT*.csv    171
PMSN01001*WEIGHT*.csv    65.4
PMSN01002*AGE*.csv       45
PMSN01002*GENDER*.csv    female
PMSN01002*HEIGHT*.csv    141
PMSN01002*WEIGHT*.csv    87

基本上,我想让整个数据框看起来像这样,其中文件名显示为行,值显示为相应的列:

                age    gender  height  weight      
PMSN*.csv        54     male    171    65.4
PMSN*.csv        52     female  181    54

我怎样才能做到这一点?

我认为关键思想是创建一个空数据框,然后使用 glob.glob() 读取所有 csv 文件,并以某种方式使用 open() 将每个文件名视为 。但是我在这里绕圈子......

csv_path = \mypath\  

filenames = glob.glob(csv_path + '\*.csv')

提前非常感谢!!

【问题讨论】:

    标签: pandas dataframe csv append glob


    【解决方案1】:

    您可以使用下面的代码,其中header=0表示读取CSV后可以将第一行指定为列名。

    import pandas as pd
    import glob
    
    path = r'C:\DRO\DCL_rawdata_files' # use your path
    
    all_files = glob.glob(path + "/*.csv")
    
    li = []
    
    for filename in all_files:
    
        df = pd.read_csv(filename, index_col=None, header=0)
    
        li.append(df)
    
    frame = pd.concat(li, axis=0, ignore_index=True)
    

    如果您想合并行中的数据,请使用它

    csv_file_list = ["sample1.csv", "sample2.csv"]
    
    list_of_dataframes = []
    for filename in csv_file_list:
        list_of_dataframes.append(pd.read_csv(filename))
    
    merged_df = pd.concat(list_of_dataframes)
    
    print(merged_df)
    

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 1970-01-01
      • 2015-11-23
      • 2020-07-11
      • 2021-10-01
      • 1970-01-01
      • 2021-03-22
      • 2021-12-07
      • 1970-01-01
      相关资源
      最近更新 更多