2017-01-18 5 views
3

でいくつかの要素を編集する方法、列の要素は['a', 'b', 2006.0, 2005.0, ... ,1995.0]例えばdf.columns

では今、私はintにfloatを変更したいと考えていますので、正しい列の要素があるべき['a', 'b', 2006, 2005, ... , 1995]

ここに数字が多いので、rename(columns={'old name': 'new name'})は良い考えだとは思わない。それを編集する方法を教えてもらえますか?

答えて

6

あなたがこれを行うことができます:あなたの助けを

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 
+0

ご協力いただきありがとうございます! – Kai

3

私はあなたがlist comprehensionを使用することができると思う:

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] 
+0

感謝を! – Kai