我有一个Series,像这样:
series = pd.Series({'a': 1, 'b': 2, 'c': 3})
我想将它转换为像这样的数据框:
a b c
0 1 2 3
pd.Series.to_frame()
无法正常工作,其结果如下:
0
a 1
b 2
c 3
我如何将一个带有索引的 Series 转换成 DataFrame,并将其索引作为新 DataFrame 的列名呢?
您也可以尝试这样做:
df = DataFrame(series).transpose()
使用transpose()函数,可以交换索引和列。输出如下:
a b c
0 1 2 3
df = pd.DataFrame(series).transpose()
。 - PJayseries.to_frame().T
- Jzou您不需要进行转置步骤,只需将您的Series放入列表中并将其传递给DataFrame
构造函数:
pd.DataFrame([series])
a b c
0 1 2 3
或者,调用 Series.to_frame
,然后使用快捷方式 .T
进行转置:
series.to_frame().T
a b c
0 1 2 3
pd.DataFrame([series])
比transpose
更好。你不必记住什么会移动到行索引,什么会移动到列中。 - Steve Lihn您也可以尝试这个方法:
a = pd.Series.to_frame(series)
a['id'] = list(a.index)
解释:
第一行将Series转换为单列DataFrame。
第二行向该DataFrame添加一个列,该列的值与索引相同。
df = series.to_frame().reset_index()
This
pd.DataFrame([series]) #method 1
产生的结果与稍有不同
series.to_frame().T #method 2
series.to_frame().T
- MaxU - stand with Ukraine