首页 > 解决方案 > 使用python连接两个CSV文件

问题描述

我有多个 CSV 文件,其中包含各种患者特征和小时测量,代表记录此测量的时间,如下所示

file 1
    Subject_id    hour_measure   label               valuenum
    23                1          heart_rate             45
    23                2          respiratory_rate       21
    24                1          heart_rate             40
    24                2          respiratory_rate       22


file 2
    Subject_id    hour_measure   label               valuenum
    23                1          Temperature            20           
    23                2          Blood_pressure         130      
    24                1          Temperature            29           
    24                2          Blood_pressure         50

我想连接这两个文件如下

Subject_id  hour_measure  heart rate respiratory_rate  Blood pressure temperature  
  23                1               45           21              130    30 
       
  24                1               40           22               50    29

我使用以下代码

  df= pd.read_csv('data.csv',low_memory=False, error_bad_lines = False)

#df.dtypes
# reshape when columns are only number
df1 = df.pivot_table(index=[hour_measure','subject_id'],
                             columns=['label'],values=['valuenum'])

with open('test.csv', 'a',newline='') as f: 
    df1.to_csv(f, header=True)

但不幸的是,它按如下方式创建文件

label                             valuenum       valuenum
  Subject_id    hour_measure    heart_rate      Respiratory_rate
    23                1               45          21
    24                2               40          22
label                             valuenum       valuenum
  Subject_id    hour_measure    Blood_pressure   Temprature
    23               1               130           20
    24               2               50            29

所以请 id 任何人都可以帮助我如何解决这个问题任何帮助将不胜感激

标签: python-3.xpandaspython-2.7scikit-learn

解决方案


这是你可以做的

pd.concat([
    pd.read_csv(f)
    for f in ("file1.csv", "file2.csv")
]).pivot_table(index=['hour_measure','subject_id'],
                         columns=['label'],values=['valuenum'] ).to_csv("concat_file.csv", index=False)

推荐阅读