我的数据框中有此列:
date
1026
1115
125
314
我想将它们转换为日期。 月份范围从 10 月到 4 月(它涵盖了 NBA 赛季(,因此 10 月、11 月和 12 月的年份与 1 月、2 月、3 月和 4 月不同。
首先,我尝试将它们从int
转换为str
,然后运行此for
循环以插入/,并计划在另一步中添加年份:
for i in range(0,len(nba_lines.index)):
nba_lines.loc[i,'Date'] = nba_lines.loc[i,'Date'][:2] + '/' + nba_lines.loc[i,'Date'][2:]
它适用于四位数字,1026 到 10/26,但三位数字中的/最终出现在错误的位置,314 到 31/4。
然后我尝试根据字符串的长度执行if
:
if len(nba_lines[i,'Date']) == 3:
nba_lines.loc[i,'Date'] = nba_lines.loc[i,'Date'][:1] + '/' + nba_lines.loc[i,'Date'][1:]
else:
nba_lines.loc[i,'Date'] = nba_lines.loc[i,'Date'][:2] + '/' + nba_lines.loc[i,'Date'][2:]
但这返回KeyError: (0, 'Date')
. 我尝试从loc
更改为iloc
,但遇到了相同的错误。
有什么想法吗?
提前感谢您的帮助。
给定日期始终为 2 位数字且月份为 1 位或 2 位的信息 - 第一个代码段将按预期工作,处理负索引
for i in range(0,len(nba_lines.index)):
nba_lines.loc[i,'Date'] = nba_lines.loc[i,'Date'][:-2] + '/' + nba_lines.loc[i,'Date'][-2:]