熊猫to_csv(“ filename.csv”)是否保存原始导入的CSV,而不是已更新,清除的CSV?我究竟做错了什么?

时间:2019-02-13 14:53:44

标签: python pandas

我已导入CSV数据集,将其清理(例如删除重复项),然后尝试导出更新的CSV。但是,导出的CSV文件包含的数据与原始数据相同,而不是更新的DataFrame。

我已经尝试过df.to_csv('out.csv')df.to_csv(r'out.csv')

将csv文件中的数据读取到数据帧中

import pandas as pd

df = pd.read_csv('data.csv')

删除重复项

df.drop_duplicates()

将更新的DataFrame保存到CSV

df.to_csv(r'cleanedData.csv')

df.to_csv('cleanedData.csv')

有人可以发现我在做什么吗?

由于数据有100行,而25行是重复的,所以我希望剩下75行。在Jupyter笔记本中,重复项将从DataFrame中正确删除。但是,当我打开导出的实际CSV文件时,仍然有100行数据。

5 个答案:

答案 0 :(得分:1)

您需要将inplace参数设置为True

例如:

import pandas as pd

df = pd.read_csv('data.csv')
df.drop_duplicates(inplace=True)

MoreInfo

答案 1 :(得分:1)

您还需要在drop_duplicates()中说inplace = True,否则它将返回一个新的DataFrame,保持原始状态不变。

答案 2 :(得分:1)

您应该添加 inplace 选项以将更改保留在原始DataFrame上

df.drop_duplicates(inplace=True)

答案 3 :(得分:1)

默认情况下,drop_duplicates()方法返回一个新的DataFrame,其中删除了重复的元素,因此在您的情况下,df保持不变。您应该写:

df.drop_duplicates(inplace=True)
df.to_csv('cleanedData.csv')

另请参阅:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop_duplicates.html

答案 4 :(得分:1)

根据Pandas drop duplicates文档:

df.drop_duplicates返回重复数据删除的数据帧,则正确的格式为:

deduplicated_df = df.drop_duplicates()

对于另一面drop_duplicates(),该标志直接用于修改数据框,如果要替换df,请将标志设置为True

df.drop_duplicates(inplace=True)