DataFrame 中某一列是元组形式拆成两列

1.有元组的拆分

df3_new.head()
migrate number1 migrate
0 -11441.0 (北京, 廊坊)
1 -9745.0 (深圳, 惠州)
2 -7393.0 (上海, 苏州)
3 -7053.0 (东莞, 惠州)
4 -4451.0 (北京, 保定)

 

想把这个里面的migrate拆成两列

#将元组拆包
#dataframe 中某一列是元组形式拆成两列
for i in range (len(df3_new)):
    l1 = [list(j)[0] for j in df3_new['migrate']]
    l2 = [list(k)[1] for k in df3_new['migrate']]
l1
l2
df3_new['地区'] = l1
df3_new['city'] = l2
df3_new
df3_new1 = df3_new.drop('migrate', axis = 1)
df3_new.head()

 

number1 地区 city
-11441.0 北京 廊坊
-9745.0 深圳 惠州
-7393.0 上海 苏州
-7053.0 东莞 惠州
-4451.0 北京 保定

2.普通拆分:(注:本方法不适用本文档)拆分有逗号隔开的列

df3_new
df3_new['地区'] = df3_new['migrate'].map(lambda x :x.split(',')[0])
df3_new['city'] = df3_new['migrate'].map(lambda x :x.split(',')[1])
df3_new

 

3.如何遍历一列数组并重新对数组进行编号赋值,形如['a', 'b', 'c', 'c', 'd']变成[1,2,3,3,4]

思路:

#1.将列表用set进行去重

#2.取长度,并生成等长的列表

#3将1,2的结果构建字典

#4对原始的列表进行字典映射

上代码:

city1 = set(list(city)) 
list(city1)[:10]
['遂宁', '北京', '乐山', '菏泽', '毕节', '枣庄', '运城', '吕梁', '吐鲁番', '张家界']
n = [ i for i in range(len(city1))]
c = list(city1)
data= dict(map(lambda x,y:[x,y], c,n))#将节点和标签建立字典
plane['n1'] = plane['地区'].map(data)#map函数将 节点和编号对应 

你可能感兴趣的:(数据分析)