我试图设置一个pd.Series
的标题,这样当将它分配给pd.Dataframe
的时候,它就会和它的标题一起进行。
我搜遍了什么也找不到。我所能做的就是命名索引,而不是数据列。
这是我有的东西
import pandas as pd
s = pd.Series([1, 2, 3, 4], index=[5, 6, 7, 8])
s.name = "a"
s.rename("b", inplace=True)
s.index.name = "c"
print("____")
print(s)
产出:
____ c 5 1 6 2 7 3 8 4名称: b,dtype: int64
我希望命名1, 2, 3, 4
列。
发布于 2021-03-24 19:51:19
您做得很好,但是可以在构造函数中直接传递它。
s = pd.Series([1, 2, 3, 4], index=[5, 6, 7, 8], name="my_amazing_name")
print(s)
# ---------------------------------------------
5 1
6 2
7 3
8 4
Name: my_amazing_name, dtype: int64
如果您使用它们构建一个DataFrame
(或附加到它),它将保留它的名称
df = pd.DataFrame([
pd.Series([1, 2, 3, 4], index=[5, 6, 7, 8], name="my_amazing_name_1"),
pd.Series([1, 2, 3, 4], index=[5, 6, 7, 8], name="my_amazing_name_2"),
pd.Series([1, 2, 3, 4], index=[5, 6, 7, 8], name="my_amazing_name_3"),
]).T
print(df)
# ---------------------------------------------
my_amazing_name_1 my_amazing_name_2 my_amazing_name_3
5 1 1 1
6 2 2 2
7 3 3 3
8 4 4 4
发布于 2021-03-24 20:01:54
我认为您不能像在索引中那样将名称放在值之上。
你现在所做的一切都是尽其所能。
# Rename index
s.index.name = 'index'
# Rename values
s = s.rename('values')
s
index
5 1
6 2
7 3
8 4
Name: values, dtype: int64
如果要将其重命名为列,则必须将s
转换为pandas.DataFrame
# Rename index
s.index.name = 'index'
# Rename values
s = s.rename('values')
# Convert to dataframe
df = s.to_frame()
values
index
5 1
6 2
7 3
8 4
https://stackoverflow.com/questions/66788292
复制相似问题