gpt4 book ai didi

python - 在特定年份 Pandas 之后删除行

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:05 25 4
gpt4 key购买 nike

我的数据框中有一列,其中包含以下格式的年份:

2018-19
2017-18

年份是对象数据类型。我想将此列的类型更改为日期时间,然后删除 1979-80 之前的所有行。但是,我尝试这样做,但出现了格式错误。执行此操作的正确或更好方法是什么?

BOS['Season'] = pd.to_datetime(BOS['Season'], format = '%Y%y')

我是 Python 的新手,所以如果你能告诉我我做错了什么,我将不胜感激。谢谢!

最佳答案

我认为这是最简单的分别比较年份,例如-之前:

print (BOS)
Season
0 1979-80
1 2018-19
2 2017-18


df = BOS[BOS['Season'].str.split('-').str[0].astype(int) < 2017]
print (df)
Season
0 1979-80

详细信息:

首先是由 Series.str.split 分割的值列出然后选择第一个列表:

print (BOS['Season'].str.split('-'))
0 [1979, 80]
1 [2018, 19]
2 [2017, 18]
Name: Season, dtype: object

print (BOS['Season'].str.split('-').str[0])
0 1979
1 2018
2 2017
Name: Season, dtype: object

或者将这两个年份转换为单独的列:

BOS['start'] = pd.to_datetime(BOS['Season'].str.split('-').str[0],  format='%Y').dt.year
BOS['end'] = BOS['start'] + 1
print (BOS)
Season start end
0 1979-80 1979 1980
1 2018-19 2018 2019
2 2017-18 2017 2018

关于python - 在特定年份 Pandas 之后删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57410185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com