2015-12-05 2 views
1

У меня есть каталог с dataframes, который я хочу объединить в один, и записать его в csv. Таким образом, при конкатенации проблем нет, но проблема заключается в написании. Я мог бы объяснить себе: Я использую следующие методы СЦЕПИТЬ и записи в формате CSV:написать конкатенированный dataframe в csv

path_all = "%all_files" % path 
path_sorted = sorted(os.listdir(path_all), key=lambda x: int(x.split('_')[0])) 
df_all = pd.DataFrame() 
list_ = [] 
for i in path_sorted: 
    f = os.path.join(path_all, i) 
    df = pd.read_csv(f, index_col=None, header=0) 
    list_.append(df) 
df_all = pd.concat(list_, ignore_index=True) 
df_all.to_csv('concatenated_df.csv', sep=',') 

Проблема заключается в том, что, когда я открываю concatenated_df.csv я не мог даже отделить столбцы, все столбцы расщеплению в один! почему это может произойти?

+0

Показать содержимое 'df_all'. –

+1

Я думаю, вам нужно определить разделитель в 'df = pd.read_csv (f, index_col = None, header = 0)' например. 'df = pd.read_csv (f, index_col = None, header = 0, sep = ';')' – jezrael

+2

Чтобы другие могли попытаться реплицировать вашу проблему, вам нужно предоставить несколько строк вашего фрейма данных тремя или четырьмя столбцами , Кроме того, 'df.to_csv()' будет предоставлять текстовый вывод напрямую, чтобы помочь решить проблему. Чтобы ограничить размер вывода, попробуйте 'df.to_csv() [: 100]' – Alexander

ответ

0

Я думаю, вам нужно определить разделитель в функции read_csv:

df = pd.read_csv(f,index_col=None, header=0) 

например

df = pd.read_csv(f,index_col=None, header=0, sep=';')