Pandas - 使用整数数组从字典中只创建一行数据帧

hei*_*sen 5 python arrays dictionary dataframe pandas

我有这本字典:

d = {'val_1': [1,2,3,4,5], 'val_2': 4}
Run Code Online (Sandbox Code Playgroud)

我想从这里创建一个只有一行的pandas DataFrame.

当我做:

import pandas as pd
df = pd.DataFrame(d)
print(df)
Run Code Online (Sandbox Code Playgroud)

我得到5行:

    val_1   val_2
0   1       4
1   2       4
2   3       4
3   4       4
4   5       4
Run Code Online (Sandbox Code Playgroud)

但是,当我将它附加到现有数据帧时,我得到了我想要的行为.

import pandas as pd
df = pd.DataFrame(d)
df = df.append(d, ignore_index=True)
print(df)

    val_1           val_2
0   1               4
1   2               4
2   3               4
3   4               4
4   5               4
5   [1, 2, 3, 4, 5] 4
Run Code Online (Sandbox Code Playgroud)

如何从dict创建数据框,并在附加案例中只获得一行?

    val_1             val_2
0   [1, 2, 3, 4, 5]   4
Run Code Online (Sandbox Code Playgroud)

在此先感谢所有人的帮助

Psi*_*dom 7

将值包装在列表中:

pd.DataFrame({k: [v] for k, v in d.items()})
#             val_1   val_2
#0  [1, 2, 3, 4, 5]       4
Run Code Online (Sandbox Code Playgroud)


cs9*_*s95 7

你可以开始pd.Series

pd.Series(d).to_frame().T

             val_1 val_2
0  [1, 2, 3, 4, 5]     4
Run Code Online (Sandbox Code Playgroud)


shi*_*vsn 6

您可以使用from_dict,但列的顺序会互换:

In[151]: pd.DataFrame.from_dict(d,orient='index').T
Out[151]: 
  val_2            val_1
0     4  [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)