我有一个包含 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() 函数似乎是解决方案,但我还没有想出如何在这种特定情况下使用它。
请留下任何关于我应该做什么的建议。
答案 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')]