簡體   English   中英

將 pandas dataframe 列標簽從浮點數轉換為 integer

[英]Convert pandas dataframe column labels from float to integer

我有以下 pandas dataframe 'GDP' 的片段,其中列標簽是浮點數。

3        2013.0        2014.0        2015.0  
4           NaN           NaN           NaN  
5  3.127550e+09           NaN           NaN  
6  1.973134e+10  1.999032e+10  2.029415e+10  
7  9.626143e+10  1.008863e+11  1.039106e+11  
8  1.254247e+10  1.279331e+10  1.312082e+10  

我嘗試使用以下方法將這些浮點標簽轉換為整數,但沒有成功:

GDP.columns = GDP.columns.astype(int)

我不斷收到錯誤: TypeError:無法將索引轉換為 dtype

然后我想將其轉換為字符串(如下所示):

years = np.arange(2006, 2016).astype(str)
GDP = GDP[np.append(['Country'],years)]

因此,我的整體 dataframe 應該如下所示: 在此處輸入圖像描述

誰能幫我一把?

print(GDP.columns)看起來像這樣:

Index([       'Country',   'Country Code', 'Indicator Name', 'Indicator Code',
                 1960.0,           1961.0,           1962.0,           1963.0,
                 1964.0,           1965.0,           1966.0,           1967.0,
                 1968.0,           1969.0,           1970.0,           1971.0,
                 1972.0,           1973.0,           1974.0,           1975.0,
                 1976.0,           1977.0,           1978.0,           1979.0,
                 1980.0,           1981.0,           1982.0,           1983.0,
                 1984.0,           1985.0,           1986.0,           1987.0,
                 1988.0,           1989.0,           1990.0,           1991.0,
                 1992.0,           1993.0,           1994.0,           1995.0,
                 1996.0,           1997.0,           1998.0,           1999.0,
                 2000.0,           2001.0,           2002.0,           2003.0,
                 2004.0,           2005.0,           2006.0,           2007.0,
                 2008.0,           2009.0,           2010.0,           2011.0,
                 2012.0,           2013.0,           2014.0,           2015.0],
      dtype='object', name=3)

僅轉換數字列,這意味着前 4. 列之后的所有列並連接在一起:

GDP.columns = GDP.columns[:4].tolist() + GDP.columns[4:].astype(int).astype(str).tolist()

接着:

years = np.arange(2006, 2016).astype(str)
GDP = GDP[np.append(['Country'],years)]
GDP.columns = GDP.columns.map(int)

如果您將數字列標簽與字符串標簽混合在一起:

for ind, col in enumerate(df.columns):
    if col.isdigit():
        df.columns.values[ind] = int(col)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM