如何根据列值删除特定的数据框行?

时间:2021-07-12 04:24:51

标签: python pandas dataframe

我有一个包含 2 列(“日期”和“毛利率”)的 Pandas 数据框。我想根据“日期”列中的值删除行。这是我的数据框:


       Date        Gross Margin

0   2021-03-31       44.79%
1   2020-12-31       44.53%
2   2020-09-30       44.47%
3   2020-06-30       44.36%
4   2020-03-31       43.69%
..         ...          ...
57  2006-12-31       49.65%
58  2006-09-30       52.56%
59  2006-06-30       49.86%
60  2006-03-31       46.20%
61  2005-12-31       40.88%

我想删除“日期”值不以“12-31”结尾的每一行。我阅读了一些关于此的类似帖子,pandas.drop() 函数似乎是解决方案,但我还没有想出如何在这种特定情况下使用它。

请留下任何关于我应该做什么的建议。

3 个答案:

答案 0 :(得分:0)

如果日期使用一致的格式,您可以这样做:

df = df[df['Date'].str.contains("12-31", regex=False)]

答案 1 :(得分:0)

您可以尝试以下代码,匹配日期和月份。

df['Date'] =  pd.to_datetime(df['Date'], format='%Y-%m-%d')
df = df[df['Date'].dt.strftime('%m-%d') == '12-31']

答案 2 :(得分:0)

假设您的日期格式为年-月-日

df = df[~df['Date'].str.endswith('12-31')]
相关问题