объединить два файла CSV, используя python - PullRequest
0 голосов
/ 14 июля 2020

У меня есть несколько файлов 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

Так что, пожалуйста, укажите любой, кто может помочь мне, как решить эту проблему. помощь будет оценена

1 Ответ

0 голосов
/ 14 июля 2020

Это то, что вы можете

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...