簡體   English   中英

如何將 DataFrame 的列名從字符串轉換為整數

[英]How to convert column names of a DataFrame from string to integers

在下面的代碼中,我將一個字符串讀入 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!!

您可以使用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索引時, df.loc[some_int]是明確的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM