将pandas数据框中的列标签从float转换为整数。

问题描述 投票:0回答:1

我有以下大熊猫的片段。数据框 '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.Cannot cast Index to dtype: 无法将Index转换为dtype

然后,我想把它转换为一个字符串(像下面这样)。

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

因此,我的整个数据框架应该是这样的。enter image description here

谁能帮我一把?

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)
python string pandas dataframe int
1个回答
2
投票

只转换数字列,这里指的是第一列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)]
© www.soinside.com 2019 - 2024. All rights reserved.