首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >pandas 如何根据多列数据生成新列?

pandas 如何根据多列数据生成新列?

提问于 2019-04-10 20:50:17
回答 0关注 0查看 1.1K

根据当前表结构,生成分组列,并根据分组列生成新的归类

处理前表结构:

site

cell

rruid

0

a

a1

60

1

a

a1

61

2

a

a2

62

3

a

a3

60

4

a

a3

64

5

b

b1

60

6

b

b2

61

处理后表结构:(cell已经升序排列)

site

cell

rruid

rru_group

sx

0

a

a1

60

60,61

S0

1

a

a1

61

60,61

S0

2

a

a2

62

62

S1

3

a

a3

60

60,64

S0

4

a

a3

64

60,64

S0

5

b

b1

60

60

S0

6

b

b2

61

61

S1

新增列生成规则:

‘rru_group’

相同cell下所有出现的rruid用,分割

‘sx’

‘site’下首次出现的cell,扇区编号sx标记为S0

依次查看相同site下的剩余cell的rruid,如果他的rruid在前面的rru_group出现过,则他的sx编号和该小区相同,否则sx编号+1

前面的代码如下:

代码语言:js
复制
import pandas as pd

data={
    'site':['a', 'a', 'a', 'a','a', 'b', 'b'],
    'cell':['a1', 'a1', 'a2', 'a3', 'a3', 'b1', 'b2'],
    'rruid':[60, 61, 62, 60, 64, 60, 61]
}

df=pd.DataFrame(data)

df_group=df.set_index(['cell','rruid'])
map_dict = {}
for i in df_group.index.levels[0]:
    temp = [str(j) for j in df_group.loc[i].index.values]
    map_dict[i] = ','.join(temp)
df['rru_group'] = df['cell'].map(map_dict)
df

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档