将 pandas 数据框列标签从浮点数转换为整数
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)]
因此,我的整体数据框应如下所示:
谁能帮帮我?
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)]
我有以下 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)]
因此,我的整体数据框应如下所示:
谁能帮帮我?
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)]