2016-07-01 4 views
0

У меня есть три файла csv.Объединить файлы с разными и перекрывающимися столбцами

Один с титулы:

names1=['Date','Conc','Flow','SZ','SB','RZ','RB','Fraction','Attenuation','Conc_less_-200_flag','Conc_greater_500_flag','Wind Speed','Wind Direction','Wind_direction_Flag','Wind_Speed_Less_than_4','Middle','Wind_Speed_Greater_than_10','Multiple conditions'] 

Первые строки:

Date,Conc,Flow,SZ,SB,RZ,RB,Fraction,Attenuation,Conc_less_-200_flag,Conc_greater_500_flag,Wind Speed,Wind Direction,Wind_direction_Flag,Wind_Speed_Less_than_4,Middle,Wind_Speed_Greater_than_10,Multiple conditions 
2004-02-27 00:00:00,,,,,,,,,,,6.524999999999999,177.75,0.0,0.0,1.0,0.0,0.0 
2004-02-27 01:00:00,,,,,,,,,,,6.991666666666667,197.83333333333334,0.0,0.0,1.0,0.0,0.0 

Другие два:

names2=['Date','Chanel0','Chanel1','Chanel2','Chanel3','Chanel4','Chanel5','Chanel6','Chanel7','Conc_less_-200_flag','Conc_greater_500_flag','Wind Speed','Wind Direction','Wind_direction_Flag','Wind_Speed_Less_than_4','Middle','Wind_Speed_Greater_than_10','Multiple conditions'] 

Первые строки:

Date,Chanel0,Chanel1,Chanel2,Chanel3,Chanel4,Chanel5,Chanel6,Chanel7,Conc_less_-200_flag,Conc_greater_500_flag,Wind Speed,Wind Direction,Wind_direction_Flag,Wind_Speed_Less_than_4,Middle,Wind_Speed_Greater_than_10,Multiple conditions 
2012-01-23 08:00:00,-2402.3575757575754,-2418.8121212121237,-2423.983863636366,-2422.913745454546,-2423.983863636366,-2422.814151515151,-2423.242424242424,-2422.4842121212123,1.0,1.0,,,,,,, 
2012-01-23 09:00:00,6.5666666666666655,6.8849999999999945,0.02130000000000001,1.4343266666666665,0.02130000000000001,1.5671516666666663,1.0,2.085166666666667,1.0,1.0,,,,,,, 

Я хочу выход быть CSV файл с заголовком:

['Date','Conc','Flow','SZ','SB','RZ','RB','Fraction','Attenuation','Chanel0','Chanel1','Chanel2','Chanel3','Chanel4','Chanel5','Chanel6','Chanel7','Conc_greater_500_flag','Wind Speed','Wind Direction','Wind_direction_Flag','Wind_Speed_Less_than_4','Middle','Wind_Speed_Greater_than_10','Multiple conditions'] 

И так очевидно: предоставляющая частью из вторых двух файлов будет иметь пробела (или лучше Наны/0 для потока, SZ колонн и т.д. И первый файл будет иметь их в столбцах channel0-7.

Примечание. Дата - это индекс col.

Я пробовал df_merged=pd.concat(df1,df2,df3), но это похоже на перекрытие заголовков.

Также пробовал:

df_merged = pd.concat ([df1, df2, DF3], ось = 1)

Но что получается выход CS: в

,Conc,Flow,SZ,SB,RZ,RB,Fraction,Attenuation,Conc_less_-200_flag,Conc_greater_500_flag,Wind Speed,Wind Direction,Wind_direction_Flag,Wind_Speed_Less_than_4,Middle,Wind_Speed_Greater_than_10,Multiple conditions,Chanel0,Chanel1,Chanel2,Chanel3,Chanel4,Chanel5,Chanel6,Chanel7,Conc_less_-200_flag,Conc_greater_500_flag,Wind Speed,Wind Direction,Wind_direction_Flag,Wind_Speed_Less_than_4,Middle,Wind_Speed_Greater_than_10,Multiple conditions,Chanel0,Chanel1,Chanel2,Chanel3,Chanel4,Chanel5,Chanel6,Chanel7,Conc_less_-200_flag,Conc_greater_500_flag,Wind Speed,Wind Direction,Wind_direction_Flag,Wind_Speed_Less_than_4,Middle,Wind_Speed_Greater_than_10,Multiple conditions 
2004-02-27 00:00:00,,,,,,,,,,,6.524999999999999,177.75,0.0,0.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 

Какие близко, но у него есть дополнительные столбцы на конце И я не думаю, что перекрывает общие звоны

+0

Try 'ДФ = pd.merge (df1, df2, DF3); df.to_csv ('New.csv') ' – Serenity

+0

df = pd.merge (df1, df2, df3) дает: ValueError: Значение истинности DataFrame неоднозначно. Используйте a.empty, a.bool(), a.item(), a.any() или a.all(). – SLE

ответ

0

Это идея. Сначала прочитайте два файла в списках, то набор и объединения двух списков

Вы можете оформить этот ответ How to get the union of two lists using list comprehension?

+0

Я использую это, чтобы загрузить их. df1 = pd.read_csv ('Combined04.csv', index_col = 0, имена = names1, parse_dates = True) Что значит превратить файл в список ? Этот ответ отлично подходит для заголовков ... но при попытке он потерял все данные – SLE

Смежные вопросы