2015-10-16 2 views
1

Привет У меня есть файл CSV в видеPython CSV создать новый HTML столбец таблицы

Col1 Col2 Col3 Col4 col5 
AA BA  CA DA EA 
AB BB  CB DB EB 
AC BC  CC DC EC 
AD BD  CD DD ED 

Как это обойти, чтобы создать новый файл CSV с новой колонки COLTAble New CSV будет в формат. Col1 Col2 Coltable Где coltable использует col3, COL4 и col5 и принимает форму

<table border="1" cellpadding="0" cellspacing="0"> 
<tbody> 
    <tr> 
     <td rowspan="2" style="width:50%;"> 
     COL3 
     </td> 
     <td style="width:50%;"> 
     COL4 
     </td> 
    </tr> 
    <tr> 
     <td style="width:50%;"> 
     COL5 
     </td> 
    </tr> 
</tbody> 

+0

Я хочу, чтобы третий столбец содержит HTML, с информацией из col3, Col4and col5. – BKCapri

+0

Какая у вас проблема с созданием html и помещением в файл csv? –

+0

С другой стороны. Я пытаюсь создать столбец HTML, объединив 3 столбца в таблицу HTML. Следовательно, я все равно получаю файл CSV. – BKCapri

ответ

1

я не уверен, я полностью понимаю ваш вопрос. У вашей последней csv есть другая строка таблицы html для каждой строки?

Тем не менее, панды действительно полезны для чтения и записи таких файлов.

>>> import pandas as pd 
>>> df = pd.read_csv('temp.csv') 
>>> print df 
    Col1 Col2 Col3 Col4 col5 
0 AA BA CA DA EA 
1 AB BB CB DB EB 
2 AC BC CC DC EC 
3 AD BD CD DD ED 



>>> df['Coltable'] = df.apply(lambda row: row[2:].to_frame().to_html(), axis=1) 
>>> df_new = df.iloc[:, [0, 1, -1]] 
>>> print df_new 
Col1 Col2           Coltable 
0 AA BA <table border="1" class="dataframe">\n <thead... 
1 AB BB <table border="1" class="dataframe">\n <thead... 
2 AC BC <table border="1" class="dataframe">\n <thead... 
3 AD BD <table border="1" class="dataframe">\n <thead... 
    df_new.to_csv('temp_new.csv', index=False) 


>>> df_new.to_csv('temp_new.csv', index=False) 

Теперь temp_new.csv выглядит

Col1,Col2,Coltable 
AA,BA,"<table border=""1"" class=""dataframe""> 
    <thead> 
    <tr style=""text-align: right;""> 
     <th></th> 
     <th>0</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <th>Col3</th> 
     <td>CA</td> 
    </tr> 
    <tr> 
     <th>Col4</th> 
     <td>DA</td> 
    </tr> 
    <tr> 
     <th>col5</th> 
     <td>EA</td> 
    </tr> 
    </tbody> 
</table>" 
AB,BB,"<table border=""1"" class=""dataframe""> 
    <thead> 
    <tr style=""text-align: right;""> 
     <th></th> 
     <th>1</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <th>Col3</th> 
     <td>CB</td> 
    </tr> 
    <tr> 
     <th>Col4</th> 
     <td>DB</td> 
    </tr> 
    <tr> 
     <th>col5</th> 
     <td>EB</td> 
    </tr> 
    </tbody> 
</table>" 
AC,BC,"<table border=""1"" class=""dataframe""> 
    <thead> 
    <tr style=""text-align: right;""> 
     <th></th> 
     <th>2</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <th>Col3</th> 
     <td>CC</td> 
    </tr> 
    <tr> 
     <th>Col4</th> 
     <td>DC</td> 
    </tr> 
    <tr> 
     <th>col5</th> 
     <td>EC</td> 
    </tr> 
    </tbody> 
</table>" 
AD,BD,"<table border=""1"" class=""dataframe""> 
    <thead> 
    <tr style=""text-align: right;""> 
     <th></th> 
     <th>3</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <th>Col3</th> 
     <td>CD</td> 
    </tr> 
    <tr> 
     <th>Col4</th> 
     <td>DD</td> 
    </tr> 
    <tr> 
     <th>col5</th> 
     <td>ED</td> 
    </tr> 
    </tbody> 
</table>" 
+0

От вашего подхода вы поняли мой вопрос: хорошо ли читаете Pandas, затем попробуйте свой подход к предложению. благодаря – BKCapri

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