当前位置: 首页 > 面试题库 >

drop_duplicates在pandas 中不起作用?

马晓博
2023-03-14
问题内容

我的代码的目的是导入2个Excel文件,对其进行比较,然后将差异打印到新的Excel文件中。

但是,在连接所有数据并使用该drop_duplicates功能之后,控制台将接受该代码。但是,当打印到新的excel文件时,重复副本仍会在当天保留。

我想念什么吗?是某种使drop_duplicates功能无效的东西吗?

我的代码如下:

import datetime
import xlrd
import pandas as pd
#identify excel file paths
filepath = r"excel filepath"
filepath2 = r"excel filepath2"
#read relevant columns from the excel files
df1 = pd.read_excel(filepath, sheetname="Sheet1", parse_cols= "B, D, G, O")
df2 = pd.read_excel(filepath2, sheetname="Sheet1", parse_cols= "B, D, F, J")
#merge the columns from both excel files into one column each respectively
df4 = df1["Exchange Code"] + df1["Product Type"] + df1["Product Description"] + df1["Quantity"].apply(str)
df5 = df2["Exchange"] + df2["Product Type"] + df2["Product Description"] + df2["Quantity"].apply(str)
#concatenate both columns from each excel file, to make one big column containing all the data
df = pd.concat([df4, df5])
#remove all whitespace from each row of the column of data
df=df.str.strip()
df=["".join(x.split()) for x in df] 
#convert the data to a dataframe from a series
df = pd.DataFrame({'Value': df}) 
#remove any duplicates
df.drop_duplicates(subset=None, keep="first", inplace=False)
#print to the console just as a visual aid
print(df)
#print the erroneous entries to an excel file
df.to_excel("Comparison19.xls")

问题答案:

您已经拥有了,inplace=False所以您没有进行修改df。你想要

 df.drop_duplicates(subset=None, keep="first", inplace=True)

要么

 df = df.drop_duplicates(subset=None, keep="first", inplace=False)


 类似资料:
  • 我有像这样的字符串,我想将它们转换为本机Python datetime对象:即类型。通过转换很容易: 与结果 这正是我想要的,因为我想通过从其中一个减去另一个来计算,这在本机Python类。但是,我的数据在一个<code>pd.DataFrame</code>中。当我尝试以下代码时: 结果是 这是错误的类型,我无法弄清楚为什么只评估表达式的一部分(即string-to-pandas-Timesta

  • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击

  • 问题内容: 我注意到less.js在firefox中工作,但在Chrome中不工作,或者是因为我出错了吗? 即使我尝试在Chrome中仍然无法使用,我在某个地方犯了错误吗? 问题答案: 通过您提供的链接: 如果您使用的是Chrome,Less.js浏览器脚本当前将无法使用,并且由于已知的Chrome问题,网页的路径以“file:///”开头。

  • 问题内容: 不仅如此,其他代码也有相同的问题。只是不能使用ImageView。 环境:macOS,IntelliJ 造成原因:java.lang.IllegalArgumentException:无效的URL:无效的URL或找不到资源 问题答案: 该图像构造函数接受一个url作为参数。如果您未在其中添加协议,则它将假定该项目来自类路径。显然,不会出现在您的类路径中。 要从文件而不是类路径中读取,请

  • 问题内容: 当我迅速运行此代码时,我不知道为什么应用程序会在“ alertView.show()”部分显示一个断点而终止,请有人帮帮我。 问题答案: 从Xcode 6.0 UIAlertView类: 不推荐使用UIAlertView。改用UIAlertController和UIAlertControllerStyleAlert的preferredStyle。 在Swift(iOS 8和OS X 1

  • 问题内容: 我已经动态创建了一个复选框。我曾经在单击复选框时调用过一个函数,该函数在Google Chrome和Firefox中有效,但 在Internet Explorer 8中不起作用 。这是我的代码: 是我的事件处理程序。 问题答案: 尝试: 更新: 对于IE9之前的InternetExplorer版本,应使用attachEvent方法将指定的侦听器注册到调用它的EventTarget上,对