这可能是一个简单的问题,但我不知道该怎么做。假设有两个变量。

a = 2
b = 3

我想从这个构建一个数据框架:

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

这会产生一个错误:

ValueError:如果使用所有标量值,则必须传递一个索引

我也试过这个:

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

这将给出相同的错误消息。


当前回答

你需要提供可迭代对象作为Pandas DataFrame列的值:

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

其他回答

最简单的选项ls:

dict  = {'A':a,'B':b}
df = pd.DataFrame(dict, index = np.arange(1) )
import pandas as pd
 a=2
 b=3
dict = {'A': a, 'B': b}

pd.DataFrame(pd.Series(dict)).T  
# *T :transforms the dataframe*

   Result:
    A   B
0   2   3

也许Series会提供你需要的所有函数:

pd.Series({'A':a,'B':b})

DataFrame可以被认为是一个系列的集合,因此你可以:

将多个Series连接到一个数据帧中(如此处所述) 向现有数据帧中添加一个Series变量(示例如下)

如果你有一个字典,你可以用下面这行代码把它转换成pandas数据帧:

pd.DataFrame({"key": d.keys(), "value": d.values()})

你也可以使用pd.DataFrame.from_records,这在你已经有字典的情况下更方便:

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

你也可以设置索引,如果你想,通过:

df = pd.DataFrame.from_records([{ 'A':a,'B':b }], index='A')