小能豆

我有两个变量

javascript

我有两个变量如下。

py

a = 2

b = 3

我想从中构建一个 DataFrame:

py

df2 = pd.DataFrame({'A':a, 'B':b})

这会产生一个错误:

none

ValueError: If using all scalar values, you must pass an index

我也尝试过这个:

py

df2 = (pd.DataFrame({'a':a, 'b':b})).reset_index()

这给出了相同的错误消息。我该怎么做?


阅读 31

收藏
2024-09-15

共1个答案

小能豆

当从标量值构造 pandas 时DataFrame,pandas 需要一个索引,因为它将标量值解释为需要跨行广播。要解决此问题,您可以:

  1. 将标量值包装在一个列表中(Pandas 将其解释为单行数据)。
  2. 明确传递索引

您可以通过以下两种方式执行此操作:

1.将标量包装到列表中:

这是将标量值转换为 DataFrame 的最简单方法:

import pandas as pd

a = 2
b = 3

df2 = pd.DataFrame({'A': [a], 'B': [b]})
print(df2)

输出:

   A  B
0  2  3

2.明确传递索引:

或者,如果您想要更好地控制 DataFrame 结构,您可以传递索引:

df2 = pd.DataFrame({'A': a, 'B': b}, index=[0])
print(df2)

输出:

   A  B
0  2  3

这两种方法都会给您一个单行 DataFrame,其中a和分别是和b列中的值。A``B

2024-09-15