【发布时间】:2021-02-15 07:41:35
【问题描述】:
我有一个庞大的学生数据集,每个学生都有自己的 csv 文件, 数据集 B 有 297,444 个 csv 文件,我想知道该数据集中缺少哪个学生 csv 文件。
正如您在这张图片中看到的那样,该数据集中没有 u2.csv 文件,那么我如何使用 pandas 检查哪些所有 csv 文件丢失?
这是我目前尝试过的代码
import pandas as pd
import numpy as np
import glob
path = r'C:/Users/user1/Desktop/EDNET DATA/EdNet-KT4/KT4' # use your path
all_files = glob.glob(path + "/*.csv")
li = []
for i,filename in enumerate (all_files):
df = pd.read_csv(filename, ',' ,index_col=None, header=0).assign(user_iD=filename.split("\\")[-1].split(".")[0])
li.append(df)
data = pd.concat(li, axis=0, ignore_index=True)
df = data.copy()
df.isnull().sum()
df.to_feather('KT4.ftr')
data1= pd.read_feather('KT4.ftr')
data1.head()
【问题讨论】:
-
到目前为止你尝试过什么?向我们展示您的代码!
-
添加现有代码,你是如何访问文件的。
-
我刚刚将所有这些 csv 文件合并到一个单独的羽毛文件中,到目前为止,我刚刚检查了数据集中存在哪些缺失值(Nan 值),我不知道如何检查哪些 csv 文件丢失了?
-
先尝试一些更简单的事情:获取所有学生姓名的列表,然后获取所有文件名的列表。然后遍历所有学生姓名,并检查每个学生姓名是否在另一个列表中。无需阅读文件
-
我认为您不应该为此使用熊猫。只需创建目录中所有文件的列表,删除“u”前缀,然后找到丢失的数字(您可以创建一个新列表,其中包含原始列表中从 1 到最大数字的所有数字),然后从新列表中删除原始列表中的数字。