[英]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)]
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.