import pandas as pd;
df = pd.read_csv("test.csv")
def getDfIds(df):
ids = []
for i in df.index:
ids.append(df.iloc[i,0])
return ids
# create headers
def createHeaders(df,ids):
headers = []
for i in df.index:
names = (df.iloc[i,1]).split('/')
for index in range(len(names)):
headers.append(names[index].strip())
headers = list(set(headers))
headers.insert(0,"id")
return headers
# create body
def createBody(df,headers,ids):
# set default values 0
data = [[0 for i in range(len(headers))] for j in range(len(df.index))]
for i in df.index:
data[i][0] = ids[i]
names = (df.iloc[i,1]).split('/')
for ind in range(len(names)):
name = names[ind].strip()
inde = headers.index(name)
data[i][inde] = 1
return data
ids = getDfIds(df)
headers = createHeaders(df,ids)
body = createBody(df,headers,ids)
# create new data set
df = pd.DataFrame(body, columns = headers)
print df;
import pandas as pd
data = pd.read_csv("./data.csv")
data["name"]= data["name"].str.split("/")
jone = [0, 0]
elvis = [0, 0]
tom = [0, 0]
tonny = [0, 0]
for i in data.index:
if any("Jone" in s for s in data.name[i]):
jone[i] = 1
else:
jone[i] = 0
for i in data.index:
if any("Elvis" in s for s in data.name[i]):
elvis[i] = 1
else:
elvis[i] = 0
for i in data.index:
if any("Tom" in s for s in data.name[i]):
tom[i] = 1
else:
tom[i] = 0
for i in data.index:
if any("Tonny" in s for s in data.name[i]):
tonny[i] = 1
else:
tonny[i] = 0
data['Jone'] = jone
data['Elvis'] = elvis
data['Tom'] = tom
data['Tonny'] = tonny
让我们将pandas和
.str.get_dummies
与sep
参数一起使用:从剪贴板读入数据帧
输入数据帧:
设置索引并将字符串访问器与
get_dummies
一起使用:输出:
相关问题 更多 >
编程相关推荐