相关疑难解决方法(0)

使用Python中的pandas将YYYYMMDD和HH放在单独的列中时解析日期

我有一个与csv文件和解析日期时间相关的简单问题.

我有一个看起来像这样的csv文件:

YYYYMMDD, HH,    X
20110101,  1,   10
20110101,  2,   20
20110101,  3,   30
Run Code Online (Sandbox Code Playgroud)

我想用pandas(read_csv)阅读它并将它放在由datetime索引的数据帧中.到目前为止,我已尝试实现以下内容:

import pandas as pnd
pnd.read_csv("..\\file.csv",  parse_dates = True, index_col = [0,1])
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

                         X
YYYYMMDD    HH            
2011-01-01 2012-07-01   10
           2012-07-02   20
           2012-07-03   30
Run Code Online (Sandbox Code Playgroud)

正如您在将HH转换为不同日期时看到的parse_dates.

是否有一种简单有效的方法可以将"YYYYMMDD"列与"HH"列正确组合以获得类似的效果?:

                      X
Datetime              
2011-01-01 01:00:00  10
2011-01-01 02:00:00  20
2011-01-01 03:00:00  30
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

python pandas

25
推荐指数
2
解决办法
2万
查看次数

使用python pandas解析CSV格式的日期格式为Year,Day,Hour,Min,Sec

我有几个CSV文件格式:

Year,Day,Hour,Min,Sec.,P1'S1
 2003,  1, 0, 0,12.22, 0.541
 2003,  1, 1, 0,20.69, 0.708
 2003,  1, 2, 0, 4.95, 0.520
 2003,  1, 3, 0,13.42, 0.539
...
Run Code Online (Sandbox Code Playgroud)

(当天,是一年中某一天)我正在尝试使用熊猫图书馆阅读它们(到目前为止似乎是一个很棒的文章).

有一个内置函数可以在pandas中读取CSV,甚至更好的是,该函数可以检查列的日期类型.并自动将其用作索引(这对我正在做的事情来说非常完美).

问题是,我无法使用这种格式的日期数据.

我试过了:

data = pd.read_csv("csvFile.csv", index_col=[0, 1],  , index_col=[0, 1, 2, 3, 4] parse_dates=True)
Run Code Online (Sandbox Code Playgroud)

它只能正确地获得年份:

In [36]: data.index
Out[36]: 
MultiIndex
[(<Timestamp: 2003-09-04 00:00:00>, 1, 0, 0, 12.22)
 (<Timestamp: 2003-09-04 00:00:00>, 1, 1, 0, 20.69)
 (<Timestamp: 2003-09-04 00:00:00>, 1, 2, 0, 4.95) ...,
 (<Timestamp: 2003-09-04 …
Run Code Online (Sandbox Code Playgroud)

python pandas python-dateutil

5
推荐指数
1
解决办法
1万
查看次数

使用Python的pandas从TXT文件解析DD MM YY HH MM SS列

大家先谢谢你们的时间.我在格式中有许多以空格分隔的文本文件;

    29 04 13 18 15 00    7.667
    29 04 13 18 30 00    7.000
    29 04 13 18 45 00    7.000
    29 04 13 19 00 00    7.333
    29 04 13 19 15 00    7.000
Run Code Online (Sandbox Code Playgroud)

采用DD MM YY HH MM SS格式和我的结果值.我正在尝试使用Python的pandas读取txt文件.在发布这个问题之前,我已经尝试过对此进行相当多的研究,所以希望我没有覆盖这个问题.

基于反复试验和研究,我提出了:

    import pandas as pd
    from cStringIO import StringIO
    def parse_all_fields(day_col, month_col, year_col, hour_col, minute_col,second_col):
    day_col = _maybe_cast(day_col)
    month_col = _maybe_cast(month_col)
    year_col = _maybe_cast(year_col)
    hour_col = _maybe_cast(hour_col)
    minute_col = _maybe_cast(minute_col)
    second_col = _maybe_cast(second_col)
    return lib.try_parse_datetime_components(day_col, month_col, year_col, hour_col, …
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

3
推荐指数
1
解决办法
2451
查看次数

熊猫:从3列创建时间戳:月,日,小时

我使用的是Python 2.7,panda 0.14.1-2,numpy 1.8.1-1.我必须使用Python 2.7,因为我将它与在Python 3上不起作用的东西耦合在一起

我正在尝试分析在单独的列中输出Month,Day和Hour的csv文件,看起来如下所示:

Month Day Hour Value 1 1 1 105 1 1 2 30 1 1 3 85 1 1 4 52 1 1 5 65

我基本上想要从这些列创建时间戳,并使用"2005"作为年份,并将此新时间戳列设置为索引.我已经阅读了很多类似的问题(这里这里),但它们都依赖于read_csv().我没有年份专栏,所以我认为这不适用于我(除了加载数据框,插入列,写入和重做read_csv ...似乎是错综复杂的).

加载数据帧后,我在位置0插入一个Year列df.insert(0,"Year",2005)

所以现在我有了

Year Month Day Hour Value 2005 1 1 1 105 2005 1 1 2 30 2005 1 1 3 85 2005 1 1 4 52 2005 1 1 5 65 df.types告诉我所有列都是int64类型.

然后我尝试这样做:

df['Datetime'] = pd.to_datetime(df.Year*1000000 + df.Month*10000 + df.Day+100 + df.Hour, …

python datetime pandas

2
推荐指数
2
解决办法
9241
查看次数

解析pandas中的日期字符串

对于提出一个已经多次全面解决的问题,我深表歉意.我的问题是,我试图复制粘贴,因为是SO帖子中的例子,但是没有为我工作.我的数据格式为"dd mm YYYY HH mm ss value value".我想把它读作一个pandas数据帧,第一列作为日期字符串.以下是我在SO帖子中尝试的示例:1.第一个示例数据

01 05 2013 00 00 00     26.4    16.5
02 05 2013 00 00 00     25.9    17.7
03 05 2013 00 00 00     26.6    17.4
......
Run Code Online (Sandbox Code Playgroud)

添加HH mm ss的零只是为了完全符合示例.

  1. 其次是进口包裹

    从datetime import datetime导入pandas作为pd import os来自cStringIO import StringIO

    fname = os.path.expanduser('./ temps0.txt')

  2. 现在我尝试了三个例子

    a)来自SO帖子:

    使用python中的pandas,将年月日和小时的日期分解在单独的列中

    def dt_parse(date_string):dt = pd.datetime.strptime(date_string,'%d%m%Y')return dt df = pd.read_csv(fname,header = None,index_col ='datetime',parse_dates = {'datetime ':[0,1,2,4,5,6]},date_parser = lambda x:pd.datetime.strptime(x,'%d%m%Y'))date_parser = dt_pasre)

这是错误的一部分

File "/home/zmumba/anaconda/lib/python2.7/site-packages/pandas/io/parsers.py",
 line 1763, in _try_convert_dates
    colnames.append(str(columns[c]))
IndexError: list …
Run Code Online (Sandbox Code Playgroud)

python pandas

1
推荐指数
1
解决办法
6672
查看次数

标签 统计

pandas ×5

python ×5

datetime ×2

python-dateutil ×1