예제 #1
0
파일: test_csv.py 프로젝트: shoyer/odo
def test_header_disagrees_with_dshape():
    ds = datashape.dshape("var * {name: string, bal: int64}")
    with filetext("name,val\nAlice,100\nBob,200", extension="csv") as fn:
        csv = CSV(fn, header=True)
        assert convert(list, csv) == [("Alice", 100), ("Bob", 200)]

        assert list(convert(pd.DataFrame, csv).columns) == ["name", "val"]
        assert list(convert(pd.DataFrame, csv, dshape=ds).columns) == ["name", "bal"]
예제 #2
0
파일: test_csv.py 프로젝트: Will-So/odo
def test_header_disagrees_with_dshape():
    ds = datashape.dshape('var * {name: string, bal: int64}')
    with filetext('name,val\nAlice,100\nBob,200', extension='csv') as fn:
        csv = CSV(fn, header=True)
        assert convert(list, csv) == [('Alice', 100), ('Bob', 200)]

        assert list(convert(pd.DataFrame, csv).columns) == ['name', 'val']
        assert list(convert(pd.DataFrame, csv, dshape=ds).columns) == ['name', 'bal']
예제 #3
0
파일: test_csv.py 프로젝트: ahasha/odo
def test_header_mix_str_digits():
    ds = datashape.dshape('''var * {"On- or Off- Budget": ?string,
                                    "1990": ?string}''')
    with filetext('On- or Off- Budget,1990\nOn Budget,-628\nOff budget,"5,962"\n') as fn:
        csv = CSV(fn, has_header=True)
        df = convert(pd.DataFrame, csv)
        assert discover(csv).measure == ds.measure
예제 #4
0
파일: test_csv.py 프로젝트: shoyer/odo
def test_pandas_read_supports_read_csv_kwargs():
    with filetext("Alice,1\nBob,2") as fn:
        ds = datashape.dshape("var * {name: string, amount: int}")
        csv = CSV(fn)
        df = csv_to_dataframe(csv, dshape=ds, usecols=["name"])
        assert isinstance(df, pd.DataFrame)
        assert convert(list, df) == [("Alice",), ("Bob",)]
예제 #5
0
파일: test_csv.py 프로젝트: ahasha/odo
def test_pandas_read_supports_read_csv_kwargs():
    with filetext('Alice,1\nBob,2') as fn:
        ds = datashape.dshape('var * {name: string, amount: int}')
        csv = CSV(fn)
        df = csv_to_dataframe(csv, dshape=ds, usecols=['name'])
        assert isinstance(df, pd.DataFrame)
        assert convert(list, df) == [('Alice',), ('Bob',)]
예제 #6
0
파일: test_csv.py 프로젝트: shoyer/odo
def test_pandas_read_supports_gzip():
    with filetext("Alice,1\nBob,2", open=gzip.open, mode="wt", extension=".csv.gz") as fn:
        ds = datashape.dshape("var * {name: string, amount: int}")
        csv = CSV(fn)
        df = csv_to_dataframe(csv, dshape=ds)
        assert isinstance(df, pd.DataFrame)
        assert convert(list, df) == [("Alice", 1), ("Bob", 2)]
        assert list(df.columns) == ["name", "amount"]
예제 #7
0
파일: test_csv.py 프로젝트: shoyer/odo
def test_pandas_read():
    with filetext("Alice,1\nBob,2") as fn:
        ds = datashape.dshape("var * {name: string, amount: int}")
        csv = CSV(fn)
        df = csv_to_dataframe(csv, dshape=ds)
        assert isinstance(df, pd.DataFrame)
        assert convert(list, df) == [("Alice", 1), ("Bob", 2)]
        assert list(df.columns) == ["name", "amount"]
예제 #8
0
파일: test_csv.py 프로젝트: shoyer/odo
def test_glob():
    d = {"accounts1.csv": "name,when\nAlice,100\nBob,200", "accounts2.csv": "name,when\nAlice,300\nBob,400"}
    with filetexts(d) as fns:
        r = resource("accounts*.csv", has_header=True)
        assert convert(list, r) == [("Alice", 100), ("Bob", 200), ("Alice", 300), ("Bob", 400)]

        r = resource("*.csv")
        assert isinstance(r, chunks(CSV))
예제 #9
0
파일: test_csv.py 프로젝트: zhangshoug/odo
def test_unused_datetime_columns():
    ds = datashape.dshape('var * {val: string, when: datetime}')
    with filetext("val,when\na,2000-01-01\nb,2000-02-02") as fn:
        csv = CSV(fn, has_header=True)
        assert convert(
            list,
            csv_to_dataframe(csv, usecols=['val'], squeeze=True,
                             dshape=ds)) == ['a', 'b']
예제 #10
0
파일: test_csv.py 프로젝트: ahasha/odo
def test_pandas_loads_in_datetimes_naively():
    with filetext('name,when\nAlice,2014-01-01\nBob,2014-02-02') as fn:
        csv = CSV(fn, has_header=True)
        ds = datashape.dshape('var * {name: ?string, when: ?datetime}')
        assert discover(csv) == ds

        df = convert(pd.DataFrame, csv)
        assert df.dtypes['when'] == 'M8[ns]'
예제 #11
0
def test_pandas_read():
    with filetext('Alice,1\nBob,2') as fn:
        ds = datashape.dshape('var * {name: string, amount: int}')
        csv = CSV(fn)
        df = csv_to_dataframe(csv, dshape=ds)
        assert isinstance(df, pd.DataFrame)
        assert convert(list, df) == [('Alice', 1), ('Bob', 2)]
        assert list(df.columns) == ['name', 'amount']
예제 #12
0
파일: test_csv.py 프로젝트: ahasha/odo
def test_pandas_read():
    with filetext('Alice,1\nBob,2') as fn:
        ds = datashape.dshape('var * {name: string, amount: int}')
        csv = CSV(fn)
        df = csv_to_dataframe(csv, dshape=ds)
        assert isinstance(df, pd.DataFrame)
        assert convert(list, df) == [('Alice', 1), ('Bob', 2)]
        assert list(df.columns) == ['name', 'amount']
예제 #13
0
파일: test_csv.py 프로젝트: zhangshoug/odo
def test_pandas_loads_in_datetimes_naively():
    with filetext('name,when\nAlice,2014-01-01\nBob,2014-02-02') as fn:
        csv = CSV(fn, has_header=True)
        ds = datashape.dshape('var * {name: ?string, when: ?datetime}')
        assert discover(csv) == ds

        df = convert(pd.DataFrame, csv)
        assert df.dtypes['when'] == 'M8[ns]'
예제 #14
0
파일: test_csv.py 프로젝트: user32000/odo
def test_pandas_read_supports_gzip():
    with filetext('Alice,1\nBob,2', open=gzip.open,
                  mode='wt', extension='.csv.gz') as fn:
        ds = datashape.dshape('var * {name: string, amount: int}')
        csv = CSV(fn)
        df = csv_to_dataframe(csv, dshape=ds)
        assert isinstance(df, pd.DataFrame)
        assert convert(list, df) == [('Alice', 1), ('Bob', 2)]
        assert list(df.columns) == ['name', 'amount']
예제 #15
0
파일: test_csv.py 프로젝트: zhangshoug/odo
def test_header_mix_str_digits():
    ds = datashape.dshape('''var * {"On- or Off- Budget": ?string,
                                    "1990": ?string}''')
    with filetext(
            'On- or Off- Budget,1990\nOn Budget,-628\nOff budget,"5,962"\n'
    ) as fn:
        csv = CSV(fn, has_header=True)
        df = convert(pd.DataFrame, csv)
        assert discover(csv).measure == ds.measure
예제 #16
0
파일: test_csv.py 프로젝트: user32000/odo
def test_glob():
    d = {'accounts1.csv': 'name,when\nAlice,100\nBob,200',
         'accounts2.csv': 'name,when\nAlice,300\nBob,400'}
    with filetexts(d) as fns:
        r = resource('accounts*.csv', has_header=True)
        assert convert(list, r) == [('Alice', 100), ('Bob', 200),
                                    ('Alice', 300), ('Bob', 400)]

        r = resource('*.csv')
        assert isinstance(r, chunks(CSV))
예제 #17
0
파일: test_csv.py 프로젝트: user32000/odo
def test_csv_append():
    with tmpfile('.csv') as fn:
        csv = CSV(fn, has_header=False)

        data = [('Alice', 100), ('Bob', 200)]
        append(csv, data)

        assert list(convert(Iterator, csv)) == data

        with open(fn) as f:
            s = f.read()
        assert 'Alice' in s
        assert '100' in s
예제 #18
0
파일: test_csv.py 프로젝트: shoyer/odo
def test_csv_append():
    with tmpfile(".csv") as fn:
        csv = CSV(fn, has_header=False)

        data = [("Alice", 100), ("Bob", 200)]
        append(csv, data)

        assert list(convert(Iterator, csv)) == data

        with open(fn) as f:
            s = f.read()
        assert "Alice" in s
        assert "100" in s
예제 #19
0
파일: test_csv.py 프로젝트: user32000/odo
def test_csv_separator_header():
    with filetext('a|b|c\n1|2|3\n4|5|6', extension='csv') as fn:
        csv = CSV(fn, delimiter='|', has_header=True)
        assert convert(list, csv) == [(1, 2, 3), (4, 5, 6)]
예제 #20
0
파일: test_csv.py 프로젝트: user32000/odo
def test_empty_dataframe():
    with filetext('name,val', extension='csv') as fn:
        csv = CSV(fn, has_header=True)
        df = convert(pd.DataFrame, csv)
        assert isinstance(df, pd.DataFrame)
예제 #21
0
파일: test_csv.py 프로젝트: ahasha/odo
def test_unused_datetime_columns():
    ds = datashape.dshape('var * {val: string, when: datetime}')
    with filetext("val,when\na,2000-01-01\nb,2000-02-02") as fn:
        csv = CSV(fn, has_header=True)
        assert convert(list, csv_to_dataframe(csv, usecols=['val'],
                                              squeeze=True, dshape=ds)) == ['a', 'b']
예제 #22
0
파일: test_csv.py 프로젝트: user32000/odo
def test_discover_csv_files_without_header():
    with filetext('Alice,2014-01-01\nBob,2014-02-02') as fn:
        csv = CSV(fn, has_header=False)
        df = convert(pd.DataFrame, csv)
        assert len(df) == 2
        assert 'Alice' not in list(df.columns)