将列名分配给熊猫系列
Posted
技术标签:
【中文标题】将列名分配给熊猫系列【英文标题】:assigning column names to a pandas series 【发布时间】:2015-04-14 17:19:37 【问题描述】:我有一个熊猫系列
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
你能建议怎么做吗
【问题讨论】:
【参考方案1】:如果您有一个索引名为“基因”的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
【讨论】:
【参考方案2】:您也可以使用.to_frame()
方法。
如果是系列,我假设“基因”已经是索引,并且在将其转换为 DataFrame 后将保持索引。 .to_frame()
的 name
参数将命名该列。
x = x.to_frame('count')
如果您希望它们都作为列,您可以重置索引:
x = x.to_frame('count').reset_index()
【讨论】:
【参考方案3】:您可以创建一个字典并将其作为数据参数传递给数据框构造函数:
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
或者,您可以从系列中创建一个 df,您需要调用 reset_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
【讨论】:
以上是关于将列名分配给熊猫系列的主要内容,如果未能解决你的问题,请参考以下文章
如何将列表中的值分配给熊猫数据框并控制每个列表元素在数据框中的分布/频率