【问题标题】:compare if a value exists in a csv file比较 csv 文件中是否存在值
【发布时间】:2014-04-15 07:43:46
【问题描述】:

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

从 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 对其进行转换。但我不知道如何查看 json 中的字段“id”是否存在于此处显示的 lsit 中

【问题讨论】:

  • 正如所写,这个问题非常模糊。熊猫可以访问 DataFrame 中的单个值吗?是的。熊猫可以检查该值是否在另一个 DataFrame 中吗?是的。如果您需要一些具体的帮助,请发布一些示例数据。

标签: python json csv pandas comparison


【解决方案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),然后去镇上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    相关资源
    最近更新 更多