删除 Pandas 列名称中的小数点

Dan*_*rke 2 python numpy dataframe pandas

我有一个数据框numpy.float64作为列名称。

df =
     2006.0   2007.0   2008.0   2009.0
0       foo      foo      bar      bar
1       foo      foo      bar      bar
Run Code Online (Sandbox Code Playgroud)

我想将它们更改为字符串并删除小数位:

df =
       2006     2007     2008     2009
0       foo      foo      bar      bar
1       foo      foo      bar      bar
Run Code Online (Sandbox Code Playgroud)

我尝试将列保存到列表中并df.columns.tolist()在那里更改它们,但我没有运气。

任何帮助将不胜感激!

Zer*_*ero 5

您可以使用以下方式转换类型.astype

In [312]: df.columns = df.columns.astype(int)

In [313]: df
Out[313]:
  2006 2007 2008 2009
0  foo  foo  bar  bar
1  foo  foo  bar  bar
Run Code Online (Sandbox Code Playgroud)

或者使用.map并转换为字符串类型。

In [338]: df.columns.map('{:g}'.format)
Out[338]: Index(['2006', '2007', '2008', '2009'], dtype='object')

In [319]: df.columns.map(int)
Out[319]: Int64Index([2006, 2007, 2008, 2009], dtype='int64')
Run Code Online (Sandbox Code Playgroud)