回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>有一件事我发现自己必须经常去做,这让我很惊讶,在熊猫身上做到这一点是多么的困难。假设我需要创建一个具有指定索引类型和名称、列类型和名称的空<code>DataFrame</code>。(例如,我可能想稍后在循环中填充它。)最简单的方法是为每一列创建一个空的<code>pandas.Series</code>对象,指定它们的<code>dtype</code>,将它们放入指定其名称的字典中,并将字典传递到<code>DataFrame</code>构造函数中。像下面这样的。</p>
<pre><code>def create_empty_dataframe():
index = pandas.Index([], name="id", dtype=int)
column_names = ["name", "score", "height", "weight"]
series = [pandas.Series(dtype=str), pandas.Series(dtype=int), pandas.Series(dtype=float), pandas.Series(dtype=float)]
columns = dict(zip(column_names, series))
return pandas.DataFrame(columns, index=index, columns=column_names)
# The columns=column_names is required because the dictionary will in general put the columns in arbitrary order.
</code></pre>
<p>第一个问题。上面的方法真的是最简单的吗?这件事有太多令人费解的地方。我真正想做的,我很确定很多人真正想做的,是下面这样的事情。</p>
<pre><code>df = pandas.DataFrame(columns=["id", "name", "score", "height", "weight"], dtypes=[int, str, int, float, float], index_column="id")
</code></pre>
<p>第二个问题。这种语法在Pandas中有可能吗?如果不是的话,开发人员是否正在考虑支持这样的项目?我觉得它真的应该像这样简单(上面的语法)。</p>