2017-06-13 134 views
1

我正在運行一個SQL查詢,其中結果中有一個名爲'type'的列包含'A'或'B'作爲其值。我想將'A'轉換爲0,'B'轉換爲1.據我所知,數據框不允許字符串,所以我不知道如何去做這件事。熊貓:將字符串轉換爲使用函數浮動

我是否需要先使用SQL進行此轉換,然後使用Pandas將結果讀入數據框?

任何想法?

謝謝!

+0

你是什麼意思dataframes不允許字符串?請發佈示例代碼。 – suvy

回答

2

如果你想replace值,你可以這樣做:

df['type'] = df['type'].replace("A",0).replace("B",1) 

但熊貓數據框應該允許使用字符串

2

我不知道我的理解正是你的熊貓不允許意思串,然而,值轉換爲0和1的快捷方式是以下幾點:

df = pd.DataFrame(['A', 'B', 'A'], columns=['x']) 
df['x_int'] = (df['x'] == 'B').astype(int) 
df 

    x x_int 
0 A 0 
1 B 1 
2 A 0 

在這裏,你是該系列第一次轉換爲布爾然後將叔整數

2

熊貓DataFrames允許字符串,但大多數預測/迴歸/分類方法沒有。

有相當將字符串轉換爲數值的幾種方法:

df['type'] = df['type'].map({'A':0, 'B':1}) 

IMO最靈活的是:

df['type'] = pd.factorize(df['type'])[0] 

from sklearn.preprocessing import LabelEncoder 
le = LabelEncoder() 
df['type'] = le.fit_tramsform(df[['type']]) 
相關問題