2016-07-07 72 views
6

pd.DataFrame文档字符串指定为整个数据帧的标参数:初始化大熊猫数据帧具有定义dtypes

dtype : dtype, default None Data type to force, otherwise infer

看似它确实旨在是一个标量,如以下导致的错误:

dfbinseq = pd.DataFrame([], 
         columns = ["chr", "centre", "seq_binary"], 
         dtype = ["O", pd.np.int64, "O"]) 

dfbinseq = pd.DataFrame([], 
         columns = ["chr", "centre", "seq_binary"], 
         dtype = [pd.np.object, pd.np.int64, pd.np.object]) 

对我而言,创建一个空数据框(我需要在HDF5存储中进一步存储append s)的唯一解决方法是

dfbinseq.centre.dtype = np.int64 

有没有办法一次设置dtypes参数?

回答

9

您可以设置dtypeSeries

import pandas as pd 

df = pd.DataFrame({'A':pd.Series([], dtype='str'), 
        'B':pd.Series([], dtype='int'), 
        'C':pd.Series([], dtype='float')}) 

print (df) 
Empty DataFrame 
Columns: [A, B, C] 
Index: [] 

print (df.dtypes) 
A  object 
B  int32 
C float64 
dtype: object 

随着数据:

df = pd.DataFrame({'A':pd.Series([1,2,3], dtype='str'), 
        'B':pd.Series([4,5,6], dtype='int'), 
        'C':pd.Series([7,8,9], dtype='float')}) 

print (df) 
    A B C 
0 1 4 7.0 
1 2 5 8.0 
2 3 6 9.0 

print (df.dtypes) 
A  object 
B  int32 
C float64 
dtype: object