2016-09-01 9 views
5

문서는 좋은 예인 how metadata can be provided을 제공합니다. 그러나 내 데이터 프레임에 적합한 유형을 선택하는 것과 관련하여 확신 할 수 없다.dask.dataframe의 메타 데이터를 지정하는 방법

  • meta={'x': 'i8', 'y': 'f8', 'z': 'f8'} 대신 meta={'x': int 'y': float, 'z': float} 같은 것을 사용할 수 있습니까?
  • 누군가 'i8'과 같은 가능한 값의 목록을 알 수 있습니까? dtypes가 있습니까?
  • 임의 개체를 포함하는 열을 어떻게 지정할 수 있습니까? 한 클래스의 인스턴스 만 포함하는 열을 어떻게 지정합니까?

답변

3

사용 가능한 기본 데이터 형식은 numpy를 통해 제공되는 데이터 형식입니다. 목록을 보려면 documentation을보십시오.

이 집합에 포함되지 않은 날짜/시간 형식 (예 : datetime64)은 pandasnumpy 설명서에 추가 정보가 있습니다.

dask 데이터 프레임의 meta-argument는 일반적으로 빈 팬더 데이터 프레임이 열, 인덱스 및 dtyp에 대한 정의를 보유 할 것으로 기대합니다. 이러한 DataFrame를 구성하는

한 가지 방법은 다음과 같습니다

import pandas as pd 
import numpy as np 
meta = pd.DataFrame(columns=['a', 'b', 'c']) 
meta.a = meta.a.astype(np.int64) 
meta.b = meta.b.astype(np.datetime64) 

그러나, 또한 팬더 dataframe의 생성자에 DTYPE를 제공 할 수있는 방법이있다, 나는 개별 열의를 제공하는 방법을 잘 모르겠습니다 마다. 보시다시피 데이터 유형에 "이름"뿐만 아니라 실제 numpy 유형도 제공 할 수 있습니다.

마지막 질문에 대해 찾고있는 데이터 유형은 "개체"입니다. 예 :

import pandas as pd 

class Foo: 
    def __init__(self, foo): 
     self.bar = foo 

df = pd.DataFrame(data=[Foo(1), Foo(2)], columns=['a'], dtype='object') 
df.a 
# 0 <__main__.Foo object at 0x00000000058AC550> 
# 1 <__main__.Foo object at 0x00000000058AC358> 
관련 문제