如何创建一个空的pandas DataFrame,并为每列分配不同的数据类型?

时间:2016-05-22 23:36:40

标签: python pandas dataframe

This post提供了一种优雅的方法来创建指定数据类型的空pandas DataFrame。如果在初始化时指定np.nan值,则数据类型设置为float:

df_training_outputs = pd.DataFrame(np.nan, index=index, columns=column_names)

但是我想在每列中创建一个具有不同数据类型的空DataFrame。似乎dtype关键字参数只接受一个。

背景:我正在编写一个以递增方式生成数据的脚本,因此我需要在脚本执行期间存储它。我认为一个空的数据框(足够大以获取所有预期的数据)将是最好的方法。这必须是一个相当常见的任务,所以如果有人有更好的方法请指教。

1 个答案:

答案 0 :(得分:1)

使用不同类型的列创建空数据框的一种方法是提供一个空的numpy数组,其中包含正确的结构化dtype:

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.empty(0, dtype=[('a', 'u4'), ('b', 'S20'), ('c', 'f8')]))

>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 0 entries
Data columns (total 3 columns):
a    0 non-null uint32
b    0 non-null object
c    0 non-null float64
dtypes: float64(1), object(1), uint32(1)
memory usage: 76.0+ bytes