如何在csv中更新和删除重复项时将数据帧写入csv?

时间:2018-02-21 19:41:51

标签: python pandas csv dataframe

我可以成功删除重复项并更新现有数据框中的行。当我写这个数据帧时,也是已经有数据的csv,我如何在数据帧中对csv执行相同的命令以删除重复项和更新行。

df:
ID       email      date
0        a@a.com    2018-01-22
1        b@b.com    2018-01-20

csv:
ID       email      date
0        d@d.com    2018-01-22

我需要csv看起来像这样:

csv:
ID       email      date
0        a@a.com    2018-01-22
1        b@b.com    2018-01-20

这是我在数据帧中删除和更新pandas的代码:

permanent=permanent.sort_values(['ID']).drop_duplicates(['ID'],keep='last')

不确定如何为csv做pandas行。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

这是一种方式。

# filename containing data
filename = 'file.csv'

# drop duplicates from existing dataframe
permanent = permanent.sort_values('ID')\
                     .drop_duplicates('ID', keep='last')

# read file into dataframe
df = pd.read_csv(filename)

# concatenate the above dataframes and drop duplicates
new_df = pd.concat([permanent, df], ignore_index=True)\
           .sort_values('ID')\
           .drop_duplicates('ID', keep='last')

# write to file
new_df.to_csv(filename, index=False)

答案 1 :(得分:0)

我引用了此脚本,并遇到UnboundLocalError ...“永久”在分配前被引用

我相信这条线应该是

永久-文件名.sort ...等

这对我的数据有用。

# filename containing data
filename = 'file.csv'

# drop duplicates from existing dataframe
permanent = filename.sort_values('ID')\
                     .drop_duplicates('ID', keep='last')