我有一个Pandas系列
object x
Ezh2 2
Hmgb 7
Irf1 1
我希望将其保存为一个数据框,其中列名分别为"Gene"和"Count"。
我尝试过。x_df = pd.DataFrame(x,columns = ['Gene','count'])
但它无法工作。我想要的最终形式是:
Gene Count
Ezh2 2
Hmgb 7
Irf1 1
你能提供建议如何做到这一点吗?
In [235]:
df = pd.DataFrame({'Gene':s.index, 'count':s.values})
df
Out[235]:
Gene count
0 Ezh2 2
1 Hmgb 7
2 Irf1 1
你也可以从这个 series 来创建一个 df,需调用 reset_index
以将 index 重置,然后重新命名列:
In [237]:
df = pd.DataFrame(s).reset_index()
df.columns = ['Gene', 'count']
df
Out[237]:
Gene count
0 Ezh2 2
1 Hmgb 7
2 Irf1 1
您也可以使用.to_frame()
方法。
如果它是一个系列(Series),我假设“Gene”已经是索引,并且在转换为数据帧后将保留为索引。 .to_frame()
的name
参数将命名该列。
x = x.to_frame('count')
如果你想要它们作为列,你可以重置索引:
x = x.to_frame('count').reset_index()
pd.Series
对象x
,则可以使用reset_index
函数并提供name
参数:df = x.reset_index(name='count')
这是一个演示:
x = pd.Series([2, 7, 1], index=['Ezh2', 'Hmgb', 'Irf1'])
x.index.name = 'Gene'
df = x.reset_index(name='count')
print(df)
Gene count
0 Ezh2 2
1 Hmgb 7
2 Irf1 1