在pandas中使用日期将删除datetime中未显示的字符并转换为字符串

2024-07-05 14:25:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pandas导入数据dfST = read_csv( ... , parse_dates={'timestamp':[date]}) 在我的csv中,日期的格式是YYY/MM/DD,这是我所需要的全部-没有时间。我有几个数据集,我需要比较成员资格。当我将这些“时间戳”转换为字符串时,有时会得到这样的结果:

'1977-07-31T00:00:00.000000000Z'

我知道是一个日期时间,包括毫秒和时区。有没有什么方法可以抑制进口附加时间的增加?如果没有,我需要排除它。

dfST.timestamp[1]
Out[138]: Timestamp('1977-07-31 00:00:00')

我试过格式化它,在调用格式化值之前,它似乎一直有效:

dfSTdate=pd.to_datetime(dfST.timestamp, format="%Y-%m-%d")  
dfSTdate.head()
Out[123]: 
0   1977-07-31
1   1977-07-31
Name: timestamp, dtype: datetime64[ns]

但不是。。。当我测试这个值时,我也得到了时间:

dfSTdate[1]
Out[124]: Timestamp('1977-07-31 00:00:00')

当我把它转换成一个数组时,时间包含在毫秒和时区中,这真的把我的比较搞砸了。

test97=np.array(dfSTdate)
test97[1]
Out[136]: numpy.datetime64('1977-07-30T20:00:00.000000000-0400')

我该怎么打发时间?!? 最后,我希望使用numpy.in1d和日期作为字符串(“YYYY-MM-DD”)作为比较的一部分来比较数据集之间的成员关系


Tags: csv数据字符串numpy时间成员outtimestamp