比较csv文件中是否存在值

时间:2014-03-11 15:24:56

标签: python json csv pandas comparison

我有一个200 MB的CSV,文件和压缩格式的4 GB json文件(压缩格式时为300 MB)。现在我需要检查json中的特定字段是否具有与csv文件的第0列中的任何值匹配的值。如何在快速实现这一点,因为我必须为多个json文件执行此操作,csv文件是相同的。我希望使用熊猫会加速事情

从CSV文件读取后,将形成以下数据结构:

Empty DataFrame
Columns: []
Index: [1335063, 1339033, 1344453, 1392603, 1520033, 5342858, 5361498, 5534501, 5542881, 5552665, 5618397, 5824472, 5867442, 5908134, 5908134, 6203501, 6208411, 6209921, 6211681, 6212831, 6213691, 6287061, 6293811, 6387151, 6415771, 6508691, 6649281, 6673261, 6716441, 6782181, 6821631, 7710551, 9413871, 11280941, 11285381, 11762751, 11769381, 11854271, 11964831, 11995871, 12240091, 12541201, 12553471, 12633891, 12648021, 12834201, 12899581, 13177041, 13282401, 13290581, 13292951, 13297681, 14536901, 14592891, 14665721, 14843571, 15120821, 15127231, 15531511, 15969981, 16648561, 16808911, 16809381, 17019781, 17021721, 17224241, 17234921, 17327321, 17923721, 17930901, 18577181, 18606681, 19448911, 19557541, 20272801, 20286621, 20295001, 20351761, 21052471, 21062651, 21106501, 21578741, 22279401, 22312931, 23078211, 23164911, 24937351, 24988721, 26171811, 26188561, 26224001, 26379241, 26380531, 26383571, 26386251, 26388621, 27509171, 27825771, 28282901, 28998561, ...]

现在从gzip文件读取的数据将是一个json字符串,我可以用read_json转换它。但是我不明白如何看看这个领域是不是' id'在json中出现在这里显示的lsit

1 个答案:

答案 0 :(得分:1)

这应该让你开始:

import numpy as np
import pandas

magic_value = 11
df = pandas.DataFrame(np.random.random_integers(0, 12, size=(10,2)))

#     0   1
# 0   1   1
# 1   5   3
# 2  12  12
# 3  12   8
# 4  11   4
# 5  11  12
# 6   9   7
# 7   7   1
# 8   0  11
# 9   2   1

magic_value in df[0].values
# True

所以只需使用pandas.read_json读取JSON数据,获取您想要的值(pandas indexing docs),然后转到城镇。