2013-05-05 64 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']) 

如果这不是你想要的,请你的问题更清楚