pd.DataFrame
docstring指定整个数据帧的标量参数:
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
)的唯一解决方法是
dfbinseq.centre.dtype = np.int64
有没有办法一次设置dtypes
个参数?
答案 0 :(得分:11)
您可以将dtype
设置为Series
:
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