How to (re)name an empty column header in a pandas

2019-07-04 12:37发布

问题:

I have a pandas dataframe df1 with an index column and an unnamed series of values. I want to assign a name to the unnamed series.

The only way to do this that I know so far is to export to df1.csv using:

df1.to_csv("df1.csv", header = ["Signal"])

and then re-import using:

pd.read_csv("df1.csv", sep=",")

However, this costs time and storage space. How to do this in-memory?

When I do df2 = df1.rename(columns = {"" : "Signal"}, inplace = True)

I yield:

AttributeError: "Series" object has no attribute "Signal".

回答1:

I think inplace=True has to be removed, because it return None:

df2 = df1.rename(columns = {"" : "Signal"})

df1.rename(columns = {"" : "Signal"}, inplace = True)

Another solution is asign new name by position:

df.columns.values[0] = 'Signal'

Sample:

df1 = pd.DataFrame({'':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9]})

print (df1)
      B  C
0  1  4  7
1  2  5  8
2  3  6  9

df2 = df1.rename(columns = {"" : "Signal"})
print (df2)
   Signal  B  C
0       1  4  7
1       2  5  8
2       3  6  9