2013-05-05 63 views
0

scikit-learn tutorial here之後,如果我們有一個Pandas.DataFrame,它有一個名爲colors的列,我們如何創建循環以遍歷所有DataFrame的列(或包含所需列的列表),使得所有範疇變量(例如,變量colors可以具有值blueredpurple)將由len(colors)數虛擬變量列colors#bluecolors#redcolors#purple的取代?將創建新的Pandas.DataFrame列的循環

剛剛學過python,所以我會在一些僞代碼中寫下我的想法。

嘗試(僞代碼)

cols_to_process = ['colors'] 

# Create new columns for dummy variables 
// if listings.keyname in cols_to_process: 
    // unique_values = list of unique values in listings[col] 
    // listings = listings.join(unique_values, axis=1) 

# Populate dummy variable columns 

# Remove old columns that have dummy variable columns created 

回答

3

可以使用pandas.get_dummies功能來做到這一點:

>>> import pandas as pd 
>>> pd.get_dummies(listings['color'], 'color') 
0

所以,如果我知道你有一個有一堆顏色的值一列,你想改變這些值都該列的長度是多少?這將做到這一點:

df['column_name'] = len(df['column_name']) 

如果這不是你想要的,請你的問題更清楚