【问题标题】:Append missing values to CSV file将缺失值附加到 CSV 文件
【发布时间】:2018-05-12 17:19:36
【问题描述】:

我有一个按以下格式排序的 CSV 文件-

X,Y
0,0
0,1
0,2
1,0
1,1
2,0
2,1
2,1

这里没有值1,2。这只是一个示例,我的文件包含 100 万条记录,而缺少几千条记录。如何编写脚本来检测这些值并将其附加到文件中?

我已经尝试生成所有可能的配对并检查它们是否存在于文件中,但是太慢了-

import csv

with open('myfile.csv') as csvfile:
r = csv.reader(csvfile, delimiter=',')

for row in r:

    for i in range(1000):
        for j in range(1000):
            if (int(row[0]) == i and int(row[1]) == j):
                # Can perform operations here

有什么方法可以使用 Numpy 或 Pandas(我对它们很陌生)来解决这个问题?

【问题讨论】:

  • 是学术原因吗?否则你为什么不直接生成所有可能的配对并将其写入文件而不是检查是否丢失?
  • 其实还有一列,每条记录都有一个计数值。

标签: python pandas csv numpy


【解决方案1】:

使用集合的一种方式:

from intertools import product
import pandas as pd

df1 = pd.read_csv('myfile.csv')

set(product(df1.X.unique(), df1.Y.unique())).difference(set((i[1], i[2]) for i in df1.itertuples()))

输出:

{(1, 2), (2, 2)}

【讨论】:

  • 我的答案未经测试。感谢检查出来。 (已删除)
  • @amadispstac 如果此解决方案对您有帮助,您会考虑accepting it。
  • 通知来了。最好在问题下发表评论。
猜你喜欢
  • 2021-07-21
  • 1970-01-01
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 2020-11-18
  • 1970-01-01
相关资源
最近更新 更多