首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python pandas中将编码的min更改为日期时间

在python pandas中将编码的min更改为日期时间
EN

Stack Overflow用户
提问于 2018-07-19 05:39:27
回答 1查看 37关注 0票数 0

我有一个数据集,看起来像这样。我必须提到,263意味着(0-15分钟),264意味着(16-30分钟),265意味着(31-45分钟),266是(46-60分钟)。我需要将这些列转换为单个列,如下所示: YYYY-MM-DD HH:MM:SS

代码语言:javascript
复制
LOCAL_YEAR  LOCAL_MONTH LOCAL_DAY   LOCAL_HOUR  VALUE   FLAG    STATUS  MEAS_TYPE_ELEMENT_ALIAS
2006    4   11  0   0       R   263
2006    4   11  0   0       R   264
2006    4   11  0   0       R   265
2006    4   11  0   0       R   266
2006    4   11  1   0       R   263
2006    4   11  1   0       R   264
2006    4   11  1   0       R   265
2006    4   11  1   0       R   266

我想知道有没有人能帮我一下?

代码如下:

代码语言:javascript
复制
import pandas as pd
import numpy as np 
raw_data=pd.read_csv('Squamish_263_264_265_266.csv')


############################################## Reading rainfall and years ###################################

df=raw_data.iloc[:,[2,3,4,5,6,9]]
#print(df)

import datetime 

dmap = {263:0,264:16,265:31,266:46}
df['MEAS_TYPE_ELEMENT_ALIAS_map'] = df['MEAS_TYPE_ELEMENT_ALIAS'].map(dmap)
for row, v in df.iterrows():
    df.loc[row,'date'] = datetime.datetime(v['LOCAL_YEAR'],v['LOCAL_MONTH'],v['LOCAL_DAY'],v['LOCAL_HOUR'],v['MEAS_TYPE_ELEMENT_ALIAS_map'])

但是它给出了这个错误:

TypeError:需要整数参数,但获得了浮点数

正在尝试对DataFrame中切片的副本设置值。尝试使用值,col_indexer = .locrow_indexer

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-19 06:14:18

使用映射将别名转换为分钟,并使用迭代来构建日期

代码语言:javascript
复制
dmap = {263:0,264:16,265:31,266:46}
df['ALIAS_map'] = df['MEAS_TYPE_ELEMENT_ALIAS'].map(dmap)
df.reset_index(inplace=True)
for row in df.head(50).itertuples():    
   df.loc[row[0],'date'] = datetime.datetime(int(row[1]),row[2],row[3],row[4],row[-1])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51411362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档