2017-02-23 42 views
1

В первой строке excel содержатся слова с символом \ n в каждой ячейке. например:Удалите n символов только из первой строки xls при преобразовании в csv Python pandas

 
Month "East North Central\n(NSA)" "East North Central\n(SA)" "East South Central\n(NSA)" 

Так, при преобразовании в CSV, используя этот код:

data_xls = pd.read_excel('/home/scripts/usless/HP_PO_hist.xls', 'sheet1', index_col=4,skiprows=3) 
data_xls.to_csv('HH_PO_output.csv', encoding='utf-8') 

Он преобразует символы после того, как \ п в новые линии, как:

,Month,"East North Central 
(NSA)","East North Central 
(SA)","East South Central 
(NSA)","East South Central 

Но ожидаемый выход :

Month East North Central (NSA) East North Central (SA) East South Central (NSA) East South Central (SA) 

Как удалить этот символ \ n только из этой индексной строки при преобразовании в csv в Python df?

+0

Фактически я попытался воспроизвести ваш образец, но не получил никаких проблем ... можете ли вы поделиться своим оригинальным файлом .xls? –

ответ

3

Я использовал следующий фиктивный кадр данных:

import pandas as pd 

columns=["Month", "East North Central\n(NSA)", "East North Central\n(SA)", "East South Central\n(NSA)"] 
df = pd.DataFrame(columns=columns) 

При экспорте в CSV с помощью df.to_csv я получаю поведение разрыва той же линии (панд 0.19.2):

,Month,"East North Central 
(NSA)","East North Central 
(SA)","East South Central 
(NSA)" 

Одним из решений этой состоит в том, чтобы просто заменить \n пробелами, подобными этому:

df.columns = df.columns.str.replace("\n", " ") 

Это дает желаемый результат:

,Month,East North Central (NSA),East North Central (SA),East SouthCentral (NSA) 
Смежные вопросы