0

我正在使用 python,我有一个 HTML 文件,其中有一个表格,其中包含样本名称、基因名称以及实验中的病例数和对照数。像这样...

Sample    Gene     Cases,Controls
snow      NGF       1,2
sun       NGF       2,3
sun       NGF       1,0
snow      NGF       1,3

我需要将案例和控件分成 2 个单独的列,然后还为更正的案例和更正的控件添加列。因此,如果样本是雪,病例数必须乘以 0.8,如果样本是太阳,控制数必须乘以 1.5。我不确定如何识别行中的案例和控件,然后将案例和控件分配给不同的变量,以便我可以操纵它们。

4

1 回答 1

1

为此尝试使用 pandas 库。确保也安装 lxml。

首先,让我们假设这是您的 html:

<table>
<tr><th>Sample</th><th>Gene</th><th>Cases,Controls</th></tr>
<tr><td>snow</td><td>NGF</td><td>1,2</td></tr>
<tr><td>sun</td><td>NGF</td><td>2,3</td></tr>
<tr><td>sun</td><td>NGF</td><td>1,0</td></tr>
<tr><td>snow</td><td>NGF</td><td>1,3</td></tr>
</table>

我还假设您将其读入一个名为html.

import pandas
tables = pandas.io.html.read_html(html,header=0,infer_types=False)

# Pandas reads each table read from the HTML into a list,
# we only have one here
table = tables[0]

这用你的表做了一个DataFrame

熊猫数据框

您现在可以对其进行操作,熊猫风格!特别是,您可能想要提取案例和控件。

# Break out those cases and controls into a DataFrame
case_control_list = table["Cases,Controls"].str.split(',',1).tolist(),
case_control = pandas.DataFrame(case_control_list, columns = ["Cases", "Controls"])

案例控制熊猫

于 2013-09-12T21:13:11.043 回答