熊猫掉落方法不起作用。

时间:2018-01-08 18:31:42

标签: python pandas dataframe data-science

我希望按日期过滤相当大的Pandas数据帧(大约300万行)。 出于某种原因,与布尔标准一起使用时,drop方法根本不起作用。它只返回相同的旧数据帧。删除单行不是问题。

这是最初使用的代码,它基本上什么都不做:

import pandas as pd

#open the file

df = pd.read_csv('examplepath/examplefile.csv', names=['File Name','FileSize','File Type','Date Created','Date Last Accessed','Date Last Modified','Path'],\
             delimiter=';', header=None, encoding="ISO-8859-1",)

#convert to german style date

df['Date Created'] = pd.to_datetime(df['Date Created'], dayfirst=True)

#drop rows and assign new dataframe    

df_filtered = df.drop(df[df['Date Created'] > datetime(2010,1,1)])

然后我想出了这个代码,它看起来像一个魅力:

import pandas as pd

#open the file

df = pd.read_csv('examplepath/examplefile.csv', names=['File Name','FileSize','File Type','Date Created','Date Last Accessed','Date Last Modified','Path'],\
             delimiter=';', header=None, encoding="ISO-8859-1",)

#convert to german style date

df['Date Created'] = pd.to_datetime(df['Date Created'], dayfirst=True)

#select rows and assign new dataframe

df_filtered = df['Date Created'] < datetime(2010,1,1)

理论上的两个代码都应该做同样的事情,对吗? 是首选的代码之一?我可以使用我的第二个代码吗?将来我可能需要添加第二个过滤日期。

我希望有人可以帮助我。

谢谢和最诚挚的问候, 斯蒂芬

1 个答案:

答案 0 :(得分:0)

你必须给索引列表或列名分别“删除”行或列 阅读docs和给出的例子 您的第二种方法是有效的,因为这是您过滤数据帧的方式 您可以随意使用它。

相关问题