【问题标题】:python pandas date read_tablepython pandas date read_table
【发布时间】:2012-12-06 20:35:15
【问题描述】:

我有以下输入文件:

2012,10,3,AAPL,BUY,200
2012,12,5,AAPL,SELL,200

如何将其读入带有以下列的 pandas 数据框中:

index: default int range # 0
column1: datetime(2012,10,3,16) # 2012-10-03 16:00
column2: string # AAPL
column3: string # BUY
column4: integer # 200

例子:

0 2012-10-03 16:00 AAPL BUY  200
1 2012-12-05 16:00 AAPL SELL 200

尝试过(熊猫 0.7):

In[2]: pandas.io.parsers.read_csv("input.csv", parse_dates=[[0,1,2]], header=None)
Out[2]: 
    X.1  X.2  X.3   X.4   X.5  X.6
0  2012   10    3  AAPL   BUY  200
1  2012   12    5  AAPL  SELL  200

【问题讨论】:

    标签: python date pandas


    【解决方案1】:

    尝试使用read_csv() 函数。确保您的 csv 包含标头或传递 header=None 以进行正确解析。 parse_dates=[[0,1,2]] 将促进所需的 dattime 解析。

    In [4]: pandas.io.parsers.read_csv("input.csv", parse_dates=[[0,1,2]], header=None)
    Out[4]: 
                  X0_X1_X2    X3    X4   X5
    0  2012-10-03 00:00:00  AAPL   BUY  200
    1  2012-12-05 00:00:00  AAPL  SELL  200
    

    【讨论】:

    • 这就是我所做的,但我想知道是否有使用 pandas read_csv 或 read_table 的更优雅的解决方案
    • @rdw。你用的是什么版本的 python 和 pandas?
    • /usr/local/lib/python2.7/dist-packages/pandas-0.7.3-py2.7-linux-x86_64.egg/pandas/version.pyc
    • 你可以使用 0.8.0+ 吗?我认为这可能是必需的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 2017-09-11
    • 2014-09-10
    • 2015-09-30
    相关资源
    最近更新 更多