Python 3.x 合并时文件中切片数据帧和读取数据帧之间的差异

Python 3.x 合并时文件中切片数据帧和读取数据帧之间的差异,python-3.x,pandas,Python 3.x,Pandas,我正在从两个数据帧(上一个、当前)中查找已删除的行 前一个数据帧是整个数据的一部分, 当前数据帧从csv文件中读取 类型1:合并切片数据帧 <type 1> import pandas as pd data_all = pd.read_csv("./result/data_2010-202002.csv", index_col=0) # 2019.12, 2020.1, 2020.2(data slicing) data_0 = data_all.loc[(d

我正在从两个数据帧(上一个、当前)中查找已删除的行

前一个数据帧是整个数据的一部分, 当前数据帧从csv文件中读取

类型1:合并切片数据帧

  <type 1>
  import pandas as pd

  data_all = pd.read_csv("./result/data_2010-202002.csv", index_col=0)

  # 2019.12, 2020.1, 2020.2(data slicing)
  data_0 = data_all.loc[(data_all['year'] == 2019) & (data_all['month'] == 12)]
  data_1 = data_all.loc[(data_all['year'] == 2020) & (data_all['month'] == 1)]
  data_2 = data_all.loc[(data_all['year'] == 2020) & (data_all['month'] == 2)]

  # concatenate                                                    
  previous_data = pd.concat([data_0, data_1, data_2], axis=0, ignore_index=True)

  # updated file readning
  current_data = pd.read_csv("./result/data_201912-202002.csv", index_col=0)

  # merge how='outer'
  data_merged = pd.merge(previous_data, current_data, how = 'outer', indicator = True)

  # deleted row(The row in current_data is not in previous_data)
  data_merged.loc[data_merged._merge == "left_only"]

作为pd进口熊猫
数据全部=pd.read\U csv(“./结果/data\U 2010-202002.csv”,索引列=0)
#2019.12、2020.1、2020.2(数据切片)
data_0=data_all.loc[(data_all['year']=2019)和(data_all['month']=12)]
data_1=data_all.loc[(data_all['year']=2020年)和(data_all['month']=1)]
data_2=data_all.loc[(data_all['year']=2020年)和(data_all['month']=2)]
#连接
先前的数据=pd.concat([数据0,数据1,数据2],轴=0,忽略索引=真)
#更新文件读取
当前数据=pd.read\u csv(“./结果/数据\u 201912-202002.csv”,索引\u col=0)
#如何合并
数据合并=pd.merge(以前的数据、当前的数据、方式='outer',指示符=True)
#已删除行(当前\u数据中的行不在以前的\u数据中)
data\u merged.loc[数据\u merged.\u merge==“仅左”]
======================================================================

类型2:将切片数据帧保存到文件中,再次读取并合并

  <type 2>

  previous_data = pd.concat([data_0, data_1, data_2], axis=0, ignore_index=True)

  # save dataframe as file
  previous_data.to_csv('./result/data_201912-202002_split.csv', mode='w')

  # read dataframe in file
  previous_data = pd.read_csv("./result/data_201912-202002_split.csv", index_col=0) 

  # updated file readning
  current_data = pd.read_csv("./result/data_201912-202002.csv", index_col=0)

  # merge how='outer'
  data_merged = pd.merge(previous_data, current_data, how = 'outer', indicator = True)

  # deleted row(The row in current_data is not in previous_data)
  data_merged.loc[data_merged._merge == "left_only"]

先前的数据=pd.concat([数据0,数据1,数据2],轴=0,忽略索引=真)
#将数据帧另存为文件
以前的数据到csv('./结果/数据\u 201912-202002 \u split.csv',模式为'w')
#读取文件中的数据帧
以前的数据=pd.read\U csv(“./结果/数据\U 201912-202002\U split.csv”,索引\U col=0)
#更新文件读取
当前数据=pd.read\u csv(“./结果/数据\u 201912-202002.csv”,索引\u col=0)
#如何合并
数据合并=pd.merge(以前的数据、当前的数据、方式='outer',指示符=True)
#已删除行(当前\u数据中的行不在以前的\u数据中)
data\u merged.loc[数据\u merged.\u merge==“仅左”]
类型1和类型2的结果有很大差异

我想知道为什么

作为参考,type2的案例打印出了更准确的结果

多谢各位