pandas Series to Dataframe,使用Series的索引作为列

Jia*_*Zou 19 python pandas

我有一个系列,像这样:

series = pd.Series({'a': 1, 'b': 2, 'c': 3})
Run Code Online (Sandbox Code Playgroud)

我想将它转换为这样的数据帧:

    a   b   c
0   1   2   3
Run Code Online (Sandbox Code Playgroud)

pd.Series.to_frame 不起作用,结果像,

    0
a   1
b   2
c   3
Run Code Online (Sandbox Code Playgroud)

如何从Series构建DataFrame,其中Series的索引为列?

PJa*_*Jay 24

你也可以试试这个:

df = DataFrame(series).transpose()
Run Code Online (Sandbox Code Playgroud)

使用transpose()函数可以交换索引和列.输出如下所示:

    a   b   c
0   1   2   3
Run Code Online (Sandbox Code Playgroud)

  • 如果没有单独导入DataFrame,则需要将其编写为:`df = pd.DataFrame(series).transpose()` (3认同)
  • MaxU的评论给出了最佳答案。series.to_frame()。T (3认同)
  • 做完了 输出正是所需要的。 (2认同)

cs9*_*s95 14

您不需要转置步骤,只需将您的系列包装在一个列表中并将其传递给DataFrame构造函数:

pd.DataFrame([series])

   a  b  c
0  1  2  3
Run Code Online (Sandbox Code Playgroud)

或者,调用Series.to_frame,然后使用快捷方式转置.T

series.to_frame().T

   a  b  c
0  1  2  3
Run Code Online (Sandbox Code Playgroud)


小智 8

尝试重置索引。它将您的索引转换为数据框中的列。

df = series.to_frame().reset_index()
Run Code Online (Sandbox Code Playgroud)


小智 7

你也可以试试这个:

a = pd.Series.to_frame(series)

a['id'] = list(a.index)

说明:
第一行将系列转换为单列 DataFrame。
第 2 行向此 DataFrame 添加一列,其值与索引相同。