其他
一行pandas代码生成哑变量
一、 数据
import pandas as pd
df = pd.read_csv('data.csv', usecols=['Name', 'Info'])
df.head()
二、任务
现在我想生成A、B、C、D的哑变量
三、技术实现
在pandas操作步骤如下:
先选中pd.DataFrame中的需要操作的Info列,得到pd.Series类型数据
将pd.Series转化为pd.Series.str
使用pd.Series.str.get_dummies(),该方法内传入相应的分割符
返回的结果依然是pd.DataFrame类型数据
df.Info.str.get_dummies(',')
如果我们想将得到的结果与原始数据结合,就使用pd.concat函数。
df2 = df.Info.str.get_dummies(',')
df2 = pd.concat([df,df2], axis='columns')
#df2
四、完整代码
我们将完整代码放到一起
import pandas as pd
#读取数据
df1 = pd.read_csv('data.csv', usecols=['Name', 'Info'])
#生成哑变量
df2 = df1.Info.str.get_dummies(',')
#将原始数据与哑变量数据合并
df3 = pd.concat([df1, df2], axis='columns')
#显示合并后的结果
df3