This post提供了一种优雅的方法来创建指定数据类型的空pandas DataFrame。如果在初始化时指定np.nan值,则数据类型设置为float:
df_training_outputs = pd.DataFrame(np.nan, index=index, columns=column_names)
但是我想在每列中创建一个具有不同数据类型的空DataFrame。似乎dtype关键字参数只接受一个。
背景:我正在编写一个以递增方式生成数据的脚本,因此我需要在脚本执行期间存储它。我认为一个空的数据框(足够大以获取所有预期的数据)将是最好的方法。这必须是一个相当常见的任务,所以如果有人有更好的方法请指教。
答案 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