我将大量数据拆分为4个csv文件。它们应该具有相同的列,并且每个文件都是前一个的延续。 我在Pandas中导入了4个CSV文件,在合并它们之前,我想比较所有4个列以确定任何差异。
答案 0 :(得分:2)
事先知道您的列名称后,您可以通过usecols
参数明确地将它们传递给pd.read_csv
。如果您的csv文件与预定义列名称之间的列名不匹配,则会自动引发ValueError
。
要合并您的csv文件,您可以使用pd.concat
:
# define your column names
column_names = ["Col A", "Col B", "Col C", "Col D"]
# setup file paths
base_path = os.path.join("E:/","Datasets","Dataset01") # adopted your example here
file_names = ["file1.csv", "file2.csv", "file3.csv", "file4.csv"]
abs_paths = [os.path.join(base_path, file_name)
for file_name in file_names]
dfs = pd.concat([pd.read_csv(abs_path, usecols=columns_names)
for abs_path in abs_paths])
如果您要检查csv文件中的所有列是否相同,则只需在使用nrows=0
时加载csv文件的标题:
cols = [pd.read_csv(abs_path, nrows=0).columns
for abs_path in abs_paths]
cols_identical = [all(cols[0] == colx) for colx in cols[1:]]
all_cols_same = all(cols_identical)
答案 1 :(得分:1)
假设您有与csv1,csv2
相关的df1,df21. all(df1.columns == df2.columns)
2. pd.concat([df1, df2])
请查看concat了解详细信息。