大型数据集-选择列后选择特定行

时间:2018-08-01 11:57:45

标签: python numpy bioinformatics

我使用的是相当大的数据集,其中包含许多甚至是与它们名称相似的行。

Data

这是我到目前为止一直在使用的代码:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv("dataset_20001_20180801113759.csv")
df = df.set_index(["Small Molecule HMS LINCS ID"])

Chosen_SmallMoleculeName="10104-101-1"
df2 = df.loc[Chosen_SmallMoleculeName, ["Cell count", "% Apoptotic cells"]]
df3 = df2.loc[Chosen_SmallMoleculeName, "Cell count"]

df4 = df.loc[Chosen_SmallMoleculeName, "Cell count"]
print("Cell count")
print(df4.values)

df5 = df.loc[Chosen_SmallMoleculeName, "% Apoptotic cells"]
print("% Apoptotic cells")
print(df5.values)

由此,它打印出“细胞计数”和“凋亡细胞百分比”的整个列,这些列太大而无法在此处复制和粘贴。从上面的图片中,我想尝试并仅获取第2-7行的特定数据。

可从此处获取数据集:http://lincs.hms.harvard.edu/db/datasets/20001/results

问题1:如何选择“细胞计数”和“凋亡细胞百分比”的第2至7行特定数据?

问题2(不是很重要,但我想知道):是否可以“动态”地进行?像这样,不是我自己必须手动查看每一行以查找唯一的或相关的行,而是可以编写代码来选择要打印的第2-7行,但直观地选择第14至19行吗?我觉得这将深入研究机器学习领域...

我看过Python API,但没有发现类似的问题。

1 个答案:

答案 0 :(得分:2)

要从27检索行,可以使用slicing,一旦考虑到必须从头开始减去1,由于数组从0开始,就减去另外1:< / p>

result = df[:6][["Cell count", "% Apoptotic cells"]]

结果是:

          Cell count       % Apoptotic cells
0         576              60.59
1         373              79.09
2         436              56.19
3         654              43.88
4         284              58.10
5         574              41.81

现在,如果您要更详尽地解释您有兴趣从此数据集中提取什么属性,我们也可以帮助您解决该问题。