停止pd.DataFrame.from_csv()从将整数索引转换为日期

时间:2013-12-10 21:36:32

标签: python-2.7 csv pandas

pandas.DataFrame.from_csv(filename)似乎将我的整数索引转换为日期。

这是不可取的。我该如何防止这种情况?

此处显示的代码是较大问题的玩具版本。在更大的问题中,我正在估算和编写每个区域的统计模型参数供以后使用。我想通过使用按区域索引的pandas数据帧,我可以轻松读回参数。虽然pickle或像json这样的其他格式可能会解决这个问题,但我希望看到一个熊猫解决方案....除了pandas将区号转换为日期。

#!/usr/bin/python

cache_file="./mydata.csv"

import numpy as np
import pandas as pd
zones = [1,2,3,8,9,10]

def create():
    data = []
    for z in zones:
        info = {'m': int(10*np.random.rand()), 'n': int(10*np.random.rand())}
        info.update({'zone':z})
        data.append(info)
    df = pd.DataFrame(data,index=zones)
    print "about to write this data:"
    print df
    df.to_csv(cache_file)

def read():
    df = pd.DataFrame.from_csv(cache_file)
    print "read this data:"
    print df

create()
read()

示例输出:

about to write this data:
    m  n  zone
1   0  3     1
2   5  8     2
3   6  4     3
8   1  8     8
9   6  2     9
10  7  2    10

read this data:
            m  n  zone
2013-12-01  0  3     1
2013-12-02  5  8     2
2013-12-03  6  4     3
2013-12-08  1  8     8
2013-12-09  6  2     9
2013-12-10  7  2    10

CSV文件看起来没问题,所以问题似乎在于读取而不是创建。

mydata.csv

,m,n,zone
1,0,3,1
2,5,8,2
3,6,4,3
8,1,8,8
9,6,2,9
10,7,2,10

我想这可能有用:

pd.__version__
0.12.0

Python版本是python 2.7.5 +

我想将区域记录为索引,以便我可以轻松拉出相应的区域 参数以后。如何让pandas.DataFrame.from_csv()不要将其变成日期?

1 个答案:

答案 0 :(得分:2)

阅读pandas.DataFrame.from_csv? parse_dates参数默认为True。将其设置为False