搜索csv文件,最佳实践是什么? - python

我有一个看起来像这样的CSV文件:
(在我的CSV文件中没有标题,但为清楚起见,我在此处添加了标题)

geneName, personNumber, allele1, allele2
gene-1-A, PERSON1, C, G
gene-2_s, PERSON1, A, C
gene_3_D, PERSON1, T, T
.
.
.
gene-1_A, PERSON2, G, G
gene_3_D, PERSON2, A, C
.
.
etc.

每个人可以有5万个基因,例如,我有400个人。

我需要实现一些条件,例如:

if personX has allele1 in gene-1_A = "A" AND allele1 in gene-1_A = "B" then add to results.txt "PersonX 'cancer possible'"

在这种情况下很重要:
有时需要检查两个基因。
例如:

if (gene1 = 'A' AND 'B') AND (gene213213 = 'G' AND 'G') THEN add then add to results.txt "PersonX 'cancer possible'"

但是条件不是问题。我可以写但是如何搜索文件中的基因。我无法索引它,因为有时一个人有一个基因,而另一个人没有。

我知道如何通过两种方式进行操作:

通过熊猫将整个CSV文件读取到内存中,然后通过replace函数或使用其他方式创建新的列创建条件。但它仍会将整个文件加载到内存中。
用纯python逐行读取文件并检查每一行。在第一种情况下,如果一个基因好,则将结果保存在新列中。在第二种情况下,当我需要检查2个或更多基因时,可以将结果保存在变量中。使用的内存更少(我认为),但是更长。

这是我的两个命题,我不知道在这种情况下使用哪个更好。我的解决方案很可能不是解决该问题的最佳解决方案,因此,如果您有其他想法,我将很高兴为您提供帮助。

结果,我需要将所有可能的病人保存在一个新文件中。但是移动它们不是问题。

python大神给出的解决方案

 pd.read_csv(r'../input/data.csv', chunksize='choose your size')

您可以分块读取文件,但仍然拥有强大的熊猫技术,例如分组

如何在Matplotlib条形图后面绘制网格线 - python

x = ['01-02', '02-02', '03-02', '04-02', '05-02'] y = [2, 2, 3, 7, 2] fig, ax = plt.subplots(1, 1) ax.bar(range(len(y)), y, width=…

子条件的python条件覆盖 - python

我试图找到一个python代码覆盖率工具,该工具可以衡量语句中是否包含子表达式:例如,我想看看下面的示例是否涵盖了condition1 / condition2 / condtion3?if condition1 or condition2 or condition3: x = true_value python大神给出的解决方案 对此的唯一合理答案是:当前…

USB设备发行 - python

我目前正在使用PyUSB。由于我不熟悉USB,所以我不知道如何执行以下操作。我已经从Python PyUSB成功连接到我的USB设备硬件。在代码中,我需要重置USB设备硬件。通过向硬件发送命令来完成。现在,在硬件重置后,我想从Python PyUSB释放当前的USB设备。然后,我想在重置后将其重新连接到USB设备硬件。请让我知道,如何释放USB设备连接和接口…

Python-熊猫描述了抛出错误:无法散列的类型“ dict” - python

更新:我正在使用“ Socrata开源API”中的一些示例代码。我在代码中注意到以下注释:# First 2000 results, returned as JSON from API / converted to Python # list of dictionaries by sodapy. 我不熟悉JSON。我已经下载了一个数据集,并创建了一个包含大量…

对于DataFrame的每一行,在给定条件的情况下获取第一列的索引到新列中 - python

这是我的数据框的一部分。data = [ ['1245', np.nan, np.nan, 1.0, 1.0, ''], ['1246', np.nan, 1.0, 1.0, 1.0, ''], ['1247', 1.0, 1.0, 1.0, 1.0, �…