欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

移动推荐算法中的time列问题 关于时间处理 字符串和日期的相互转换

程序员文章站 2022-03-08 17:25:40
...

移动推荐算法中的time列问题 关于时间处理 字符串和日期的相互转换
一开始呢是object类型,不是时间格式,这就导致利用 时间进行分析会发生问题比如说我的csv中有一列是时间:1949-01-01,当我直接read_csv(fileName)时,得到的数据,它的时间这一列被当做 object(或者string),导致进行时间序列预测的时候,不好操作,也不好画图,那怎么转换呢
1)单列转换

dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
 
df = pd.read_csv(infile, parse_dates=['datetime'], date_parser=dateparse)

当然你需要灵活变通,比如:我的例子在csv中是 1949/1/1(在名为Month的这一列)

dateparse = lambda dates: pd.datetime.strptime(dates,'%Y/%m/%d')
data = pd.read_csv('AirPassengers.csv', parse_dates=['Month'],\
            index_col='Month', date_parser=dateparse)

index_col=‘Month’是为了把这一列作为索引
然后print(data.index)就能看到DatetimeIndex等字样

2)多列转换

dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
 
df = pd.read_csv(infile, parse_dates={'datetime': ['date', 'time']}, date_parser=dateparse)

https://www.cnblogs.com/datablog/p/6127000.html
很多关于时间及导入的基础知识
字符串和datetime的相互转换
1)Python标准库函数

日期转换成字符串:利用str或strftime

字符串转换成日期:datetime.strptime
字符串和日期的相互转换




dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m-%d %H')
for df in pd.read_csv(open("tianchi_fresh_comp_train_user.csv", 'r'), 
                      parse_dates=['time'], index_col=['time'], date_parser=dateparse,
                      chunksize = 100000): 
    print(df["2014-12-14"])

移动推荐算法中的time列问题 关于时间处理 字符串和日期的相互转换

dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m-%d %H')
for df in pd.read_csv(open("tianchi_fresh_comp_train_user.csv", 'r'), 
                      parse_dates=['time'], index_col=['time'], date_parser=dateparse,
                      chunksize = 100000): 
    print(df["2014-12-14"].shape[0])#行

移动推荐算法中的time列问题 关于时间处理 字符串和日期的相互转换