如何将DataFrame的列名从字符串转换为整数?

时间:2017-03-02 15:22:00

标签: python pandas dataframe

在下面的代码中,我将一个字符串读入DataFrame,但即使输入字符串的标题是数字,它们也会以字符串'1', '2'的形式读入。有没有办法以数字形式读取它们,或者之后将它们转换为数字?

import pandas as pd
from StringIO import StringIO


string_input = " 1 2\n10 0.1 0.2\n20 0.1 0.2"
data = pd.read_table(StringIO(string_input), sep='\s+')
print data
print data.columns

      1    2
10  0.1  0.2
20  0.1  0.2

Index([u'1', u'2'], dtype='object') # the columns names are of type str!!

1 个答案:

答案 0 :(得分:3)

您可以使用astype(int)

作为后处理步骤执行此操作
In [86]:
string_input = " 1 2\n10 0.1 0.2\n20 0.1 0.2"
data = pd.read_table(io.StringIO(string_input), sep='\s+')
print (data)
print (data.columns.astype(int))
​
      1    2
10  0.1  0.2
20  0.1  0.2
Int64Index([1, 2], dtype='int64')

个人而言我更喜欢字符串列,因为在读取和编写代码时索引IMO变得不那么模糊,就像在做df['col_name']成为一种习惯时,当你有一个默认的int64索引然后{{1是明确的