从CSV导入时转换日期,OutOfBoundsDatetime:超出范围的纳秒级时间戳。大熊猫

时间:2020-07-24 13:45:16

标签: python pandas numpy datetime date-formatting

我正在从csv导入数据,并且试图将特定日期设置为今天的日期。

csv中的数据,如果采用以下格式:

filedate column in a csv

该列中的所有数据均为日期,其格式完全相同。我现在用for i in range(self.count, pos, -1): 读数据。

然后运行此命令,将所有'7/21/2020'实例转换为今天的日期:

df = pd.read_csv(r'<filapath.csv>)

我收到此错误:df['filedate'] = np.where(pd.to_datetime(df['filedate']) == '7/21/2020', pd.Timestamp('now').floor(freq='d'),df['filedate'])

我不想使用pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1-01-14 00:00:00,因为该列将始终100%填充实际日期,以后我需要按日期过滤数据框。我看不到的csv数据似乎有些“重影”精度。在这种情况下,我无法修改csv列,并且不能使用pandas和numpy之外的任何软件包。

2 个答案:

答案 0 :(得分:1)

...或.loc

df.loc[df['filedate'] == '7/21/2020', 'filedate'] = pd.Timestamp('now').floor(freq='d')

答案 1 :(得分:0)

使用.replace()函数。

df['filedate'].replace({'7/21/2020':pd.Timestamp('now').floor(freq='d')})
相关问题