DataFrame中日期格式的转化(逻辑简单的遍历+字符串方法)

Tips:只是做题时忽然想到的一种思路,性能不太ok但可以实现

统计df数据的时候经常遇到,数据格式看起来为datetime,实际上是string,如YYYY/MM/DD HH/MM/SS 这样的能够看懂日期但不属于datetime格式的数据,这个时候要提取年或年月日就会比较困难

而这些数据本身是具有固定格式的,其年份/月份等等信息在字符串中的位置相对而言比较固定
如取年份时,位置一定是字符串前四位

因此,有这样一种思路:
1.遍历该列的所有数据
2.对每一个字符串数据进行切割,或许字符串中需要的片段
3.将每条数据处理后的结果储存成数组,再放进dataframe中的新一行中

这样我们就能够得到新的一列,关于想要时间的数据

下面以获取YYYY/MM/DD HH/MM/SS中的YYYY/MM/DD为例
考虑到月日的长度变化,在遍历时进行判断,截取正确位置的数据

dateList = []
# 遍历日期
for i in range(len(df1)):
    cur = df1.iloc[i]['Date'] # 获取原始的日期
    # 判断日期位数
    if(cur[8] == ' '): # 如2022/1/1
        dateList.append(cur[:8])
    elif (cur[9] == ' '): # 如2022/1/11
        dateList.append(cur[:9])
    else: # 如2022/11/11
        dateList.append(cur[:10])

# 转化为series放入dataframe中
data = pd.Series(dateList)
df1["Day"] = pd.(data)

你可能感兴趣的:(python)