小编Tit*_*tus的帖子

仅将数据帧中的新行添加到 csv 文件

每天我都会收到一个pandas数据框,其中有五列,分别称为column1, column2, column3, column4, column5。我想将以前未收到的行添加到保留唯一行的文件中,称为known_data.csv. 为此,我编写了一些代码

  1. known_data.csv从名为的数据帧加载数据existing_data

  2. existing_data向df添加一个名为“existing”的新列

  3. 将旧数据框与五列上existing_data调用的数据框合并new_data

  4. new_data通过查看merge[merge.existing.isnull()](新数据与现有数据的补集)来检查是否包含新行

  5. 将新行追加到known_data.csv文件中

我的代码看起来像这样

existing_data = pd.read_csv("known_data.csv")

existing_data['existing'] = 'yes'

merge_data = pd.merge(new_data, existing_data, on = ['column1', 'column2', 'column3', 'column4', 'column5'], how = 'left')

complement = merge_data[merge_data.existing.isnull()]

del complement['existing']

complement.to_csv("known_data.csv", mode='a', index=False,
                  header=False) 
Run Code Online (Sandbox Code Playgroud)

不幸的是,这段代码无法按预期运行:补码永远不会为空。即使当我收到已经记录在 中的数据时known_data.csv, 的一些行new_data仍然会被附加到文件中。

问题:我做错了什么?我怎么解决这个问题?这与我读取文件和写入文件的方式有关吗?

编辑:existing添加一个名为数据框的新列existing_data可能不是检查existing_data …

csv dataframe python-3.x pandas

5
推荐指数
1
解决办法
1205
查看次数

标签 统计

csv ×1

dataframe ×1

pandas ×1

python-3.x ×1