2016-02-05 4 views
-1

Я хотел бы написать foll. в CSV файл:Экспорт надстрочной нотации в pandas dataframe в csv или excel

df.loc[0] = ['Total (2000)', 
         numpy.nan, 
         numpy.nan, 
         numpy.nan, 
         2.0, 
         1.6, 
         '10^6 km^2'] 

Есть ли способ сделать это при написании '10^6 км^2' в формате такого, что 6 является верхним индексом 10 и 2 является надстрочным км. Если это невозможно в csv, могу ли я экспортировать в excel?

+0

Просьба уточнить, что вы хотите записать в файл. Операторы присваивания не возвращают значение, поэтому здесь нечего писать. – Goyo

ответ

2

Одним из возможных способов является изменение фактического содержимого блока данных перед его записью в csv (но вы можете автоматизировать это несколько).

Как доказательство концепции, используя '\u2076' как юникода представление верхнего индекса 6:

In [21]: df 
Out[21]: 
       a b c d e f   g 
0 Total (2000) NaN NaN NaN 2 1.6 10^6 km^2 

In [30]: df['g'] = (df['g'].str.replace("10\^6", u"10\u2076") 
    ...:     .str.replace("km\^2", u"km\u00b2")) 

In [31]: df 
Out[31]: 
       a b c d e f  g 
0 Total (2000) NaN NaN NaN 2 1.6 10⁶ km² 

In [32]: print df.to_csv(encoding='UTF-8', index=False) 
a,b,c,d,e,f,g 
Total (2000),,,,2.0,1.6,10⁶ km² 
+0

Вы уверены, что сделали это unicode? (используя 'u' перед строками) И выглядит ли это правильно при печати? (для меня csv-файл показывает km² правильно, надстрочный номер 6 не поддерживается, но это возможно из-за моего редактора) – joris

+0

спасибо @joris, я пропустил 'u'. После добавления, я вижу искаженный текст: '10'¶ km²' – user308827

+0

Это то, что я использую: u'10 \ u2076 km \ u00b2 ' – user308827

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