【问题标题】:Create 1 x n pandas DataFrame创建 1 x n 熊猫数据框
【发布时间】:2016-05-19 20:21:28
【问题描述】:

有没有办法使用 pandas 创建一个 1 x n 数据框?熊猫似乎按列填充数据框,而使用我的数据按行创建数据框会更容易。

例如,我目前使用 pd.DataFrame(range(10)).transpose() 创建单行数据帧,但我担心调用 transpose 方法会在我工作时降低我的代码速度有更多的数据。

【问题讨论】:

  • 为什么要这样做,迭代增长 df 是非性能行或列。无论如何,您可以通过pd.DataFrame(np.arange(10).reshape(1,10)) 来实现这一目标

标签: python pandas dataframe


【解决方案1】:

最简单的方法是:

import pandas as pd

df = pd.DataFrame([range(10)])

说明

range(10) 本质上是一维的 (, 10)。认为它是 (1, 10) 是错误的。要解决此问题,请将其指定为 [range(10)]。现在是 (1, 10)

编辑以添加 EdChum 的答案并供后人使用。

因为@EdChum 暂时喜欢在 cmets 中回答问题。如果您喜欢这个答案,请点赞他的评论。

import pandas as pd

df = pd.DataFrame(np.arange(10).reshape(1, 10))

为了速度,我对这些都进行了测试。

OP的解决方案

%%timeit
pd.DataFrame(range(10)).transpose() 

1000 loops, best of 3: 223 µs per loop

我的解决方案

%%timeit
pd.DataFrame([np.arange(10)])

1000 loops, best of 3: 783 µs per loop

EdChum 的解决方案

%%timeit
pd.DataFrame(np.arange(10).reshape(1, 10))

10000 loops, best of 3: 86.4 µs per loop

EdChum 显然更高效。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2017-07-09
    • 2022-01-13
    • 1970-01-01
    • 2021-06-02
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多