Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何编辑df.columns中的几个元素_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何编辑df.columns中的几个元素

Python 如何编辑df.columns中的几个元素,python,pandas,dataframe,Python,Pandas,Dataframe,例如,列的元素是['a','b',2006.0,2005.0,…,1995.0] 现在,我希望将float改为int,因此列的正确元素应该是['a',b',20062005,…,1995] 因为这里有很多数字,我不认为重命名(columns={'old name':'new name'})是个好主意。有谁能告诉我如何编辑它吗?我想你可以使用列表理解: print (df.columns.tolist()) ['a', 'b', 2006.0, 2005.0, 1995.0] print ([i

例如,列的元素是
['a','b',2006.0,2005.0,…,1995.0]

现在,我希望将float改为int,因此列的正确元素应该是
['a',b',20062005,…,1995]


因为这里有很多数字,我不认为
重命名(columns={'old name':'new name'})
是个好主意。有谁能告诉我如何编辑它吗?

我想你可以使用
列表理解

print (df.columns.tolist())
['a', 'b', 2006.0, 2005.0, 1995.0]

print ([int(col) if type(col) == float else col for col in df.columns])
['a', 'b', 2006, 2005, 1995]

df.columns =  [int(col) if type(col) == float else col for col in df.columns]
['a', 'b', 2006, 2005, 1995]
您可以这样做:

In [49]: df
Out[49]:
   a  b  2006.0  2005.0
0  1  1       1       1
1  2  2       2       2

In [50]: df.columns.tolist()
Out[50]: ['a', 'b', 2006.0, 2005.0]

In [51]: df.rename(columns=lambda x: int(x) if type(x) == float else x)
Out[51]:
   a  b  2006  2005
0  1  1     1     1
1  2  2     2     2

谢谢你的帮助!谢谢你的帮助!