【问题标题】:Combinning dataframes with datetime and pandas Python将数据帧与 datetime 和 pandas Python 相结合
【发布时间】:2021-12-15 01:47:10
【问题描述】:

下面的代码读取下面的 2 个 csv 文件,然后将 date\Date 转换为 pd.to_datetime(),将它们与 data_combo 函数组合在一起。但是pd.to_datetime() 函数date 不起作用typedata 仍然是<class 'pandas.core.series.Series'> 但它应该是<class 'pandas.core.indexes.datetimes.DatetimeIndex'> 我怎样才能进行必要的转换以实现预期的输出?

代码:

import functools
import pandas as pd 
import datetime

def datetime_convert(dataset):
    data =pd.read_csv(dataset[0], low_memory=False)
    #reverses all the table data values 
    data1 = data.iloc[::-1].reset_index(drop=True)
    dataset = data1[dataset[1]]
    date = pd.to_datetime(dataset)
    return date

data1= datetime_convert(['data1.csv', 'date'])
data2 = datetime_convert(['data2', 'Date'])

data_combo = functools.reduce(pd.Index.union, [data1, data2])

数据1 csv:

Unix Timestamp  date                    Symbol  
1444311600      2015-10-08 13:40:00     BTCUSD
1444311660      2015-10-08 13:41:00     BTCUSD
1444311720      2015-10-08 13:42:00     BTCUSD  

数据2 csv:

Unix Timestamp  Date                    Symbol  
1634774460000   2021-10-21 00:01:00     BTCUSD
1634774520000   2021-10-21 00:02:00     BTCUSD
1634774580000   2021-10-21 00:03:00     BTCUSD

预期输出:

DatetimeIndex([[2015-10-08 13:40:00, 2015-10-08 13:41:00, 2015-10-08 13:42:00, 
2021-10-21 00:01:00, 2021-10-21 00:02:00, 2021-10-21 00:03:00],dtype='datetime64[ns]', freq=None)

【问题讨论】:

  • 你是说data1data2都是pandas.Series吗?

标签: python pandas csv datetime time


【解决方案1】:

你为什么不能第一次将日期标题的名称更改为日期呢 尝试将两者都转换为日期时间,然后合并这两个数据框。 并将日期列设置为索引

我不能评论所以写在这里

【讨论】:

  • 是的,我已经在 csvs 上手动将列名更改为“日期”,但我无法使用 pd.to_datetime() 将它们更改为 datetime
  • from datetime import datetime dateparse = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S') df = pd.read_csv(infile, parse_dates=['date'], date_parser=dateparse) 试试这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多