假设我在Python中有一些变量。我正在尝试创建一个1行的Pandas数据帧,其中列名称是变量的名称,行中的值来自变量。
例如,如果我有这段代码:
pi = 3.142
e = 2.718
phi = 1.618
我想要一个概念上看起来像这样的数据框:
pi e phi
0 3.142 2.718 1.618
我尝试了以下操作,但所有内容都在一列中,并且未添加变量名称:
df = pd.DataFrame(data=[pi, e, phi])
df
# 0
# 0 3.140
# 1 2.718
# 2 1.618
请注意,我正在尝试复制一些旧R代码的行为。
pi <- 3.142
e <- 2.718
phi <- 1.618
df <- data.frame(pi, e, phi)
df
# pi e phi
# 1 3.142 2.718 1.618
答案 0 :(得分:4)
我认为您正在寻找这种格式:
pd.DataFrame([[pi,e,phi]],columns=['pi','e','phi'])
输出:
pi e phi
0 3.142 2.718 1.618
答案 1 :(得分:1)
您可以使用像这样的列表和字典
df = pd.DataFrame([{'pi':pi, 'e':e, 'phi':phi}])
返回
df
Out[5]:
e phi pi
0 2.718 1.618 3.142
要保留列顺序,可以使用columns参数:
df = pd.DataFrame([{'pi':pi, 'e':e, 'phi':phi}], columns=['pi', 'e', 'phi'])
返回
df
Out[9]:
pi e phi
0 3.142 2.718 1.618
其他行会进入单独的词典:
df = pd.DataFrame([{'pi':pi, 'e':e, 'phi':phi}, {'pi':2, 'e':3, 'phi':1}])
答案 2 :(得分:1)
#Reference columns names only once and column order is retained.
pd.concat([pd.DataFrame(data=[eval(k)],columns=[k]) for k in ['pi','e','phi']],axis=1)
Out[1226]:
pi e phi
0 3.142 2.718 1.618
答案 3 :(得分:0)