我使用的是相当大的数据集,其中包含许多甚至是与它们名称相似的行。
这是我到目前为止一直在使用的代码:
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,但没有发现类似的问题。
答案 0 :(得分:2)
要从2
到7
检索行,可以使用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
现在,如果您要更详尽地解释您有兴趣从此数据集中提取什么属性,我们也可以帮助您解决该问题。