python pandas创建数据框并强制多列类型

use*_*238 7 python pandas

我能够创建数据框并强制一种数据类型

import pandas as pd
test = pd.DataFrame({'a':[1,2,3], 'b':[1.1,2.1,3.1]}, dtype=int)
Run Code Online (Sandbox Code Playgroud)

但我想为每列指定类型.我怎样才能做到这一点?我尝试了以下不起作用,因为生成的dtypes是对象,b列不会转换为整数.

test = pd.DataFrame({'a':[1,2,3], 'b':[1.1,2.1,3.1]}, dtype=[('a', int),('b', int)])
Run Code Online (Sandbox Code Playgroud)

杰夫帮助解决了上述问题.但是当我尝试创建一个空数据帧并且我希望能够指定列类型时,我发现了另一个问题.对于跨列的单一类型,我可以这样做

test = pd.DataFrame(columns=['a','b'], dtype=int)
Run Code Online (Sandbox Code Playgroud)

如果我想为每个'a'和'b'指定类型怎么办?

Jef*_*eff 6

您可以传入具有dtype参数的Series

In [15]: pd.DataFrame({'a':[1,2,3], 'b':[1.1,2.1,3.1]}).dtypes
Out[15]: 
a      int64
b    float64
dtype: object

In [16]: pd.DataFrame({'a':Series([1,2,3],dtype='int32'), 'b':Series([1.1,2.1,3.1],dtype='float32')}).dtypes
Out[16]: 
a      int32
b    float32
dtype: object
Run Code Online (Sandbox Code Playgroud)

  • 下一个但类似的问题,如果我想创建一个具有指定类型的空数据框怎么办? (2认同)