将列名称分配给 pandas 系列
assigning column names to a pandas series
我有一个pandas系列
object x
Ezh2 2
Hmgb 7
Irf1 1
我想将其另存为数据框,列名分别为 Gene 和 Count
我试过了
x_df = pd.DataFrame(x,columns = ['Gene','count'])
但它不是work.The我想要的最终形式是
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
或者您可以从系列中创建一个 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
您也可以使用.to_frame()
方法。
如果它是一个系列,我假设 'Gene' 已经是索引,并且在将其转换为 DataFrame 后仍将是索引。 .to_frame()
的 name
参数将命名该列。
x = x.to_frame('count')
如果您希望它们都作为列,您可以重置索引:
x = x.to_frame('count').reset_index()
如果您有一个 pd.Series
对象 x
,其索引名为 'Gene',您可以使用 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
我有一个pandas系列
object x
Ezh2 2
Hmgb 7
Irf1 1
我想将其另存为数据框,列名分别为 Gene 和 Count 我试过了
x_df = pd.DataFrame(x,columns = ['Gene','count'])
但它不是work.The我想要的最终形式是
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
或者您可以从系列中创建一个 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
您也可以使用.to_frame()
方法。
如果它是一个系列,我假设 'Gene' 已经是索引,并且在将其转换为 DataFrame 后仍将是索引。 .to_frame()
的 name
参数将命名该列。
x = x.to_frame('count')
如果您希望它们都作为列,您可以重置索引:
x = x.to_frame('count').reset_index()
如果您有一个 pd.Series
对象 x
,其索引名为 'Gene',您可以使用 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