python – 制作单行数据帧

我无法从3个单独的数字构建数据帧.我想这样做,以便函数返回数据帧,然后我将其附加到其他现有结果.

期望的结果是具有名为“a”,“b”和“C”的列的数据帧,每个列包含a,b和c的值.

试一下:

a=1
b=2
c=3
dat=pd.DataFrame([a,b,c], columns=list('abc')) #fails with size error

试试两个:

dat=pd.DataFrame()
dat['a']=pd.np.nan
dat['b']=pd.np.nan
dat['c']=pd.np.nan

dat['c']=c # no numbers are added to the column; still has 0 rows

我在这里错过了什么?

期望的结果是:

    a  | b  | c
   -------------
    1  | 2  | 3

最佳答案

pd.DataFrame([[a, b, c]], columns=list('abc'))

   a  b  c
0  1  2  3

请注意,您的“奖金问题”实际上是不可能的,因为对象可能与多个变量相关联(想一想).

但是,您可以考虑使用字典.

data = {'a' : 1, 'b' : 2, 'c' : 3}
pd.DataFrame(data, index=[0])  # the `index` argument is important 

   a  b  c
0  1  2  3
点赞