1、條件:
根據(jù)兩行中的alias是否有交集,如果有交集,則以#號相隔進行合并
其中:alias中以#號分隔別名
2、數(shù)據(jù)
name alias
0 土豆 地豆#地蛋#馬鈴薯#土豆
1 馬鈴薯 薯仔#馬鈴薯
2 玉米 棒子#包谷#玉米#玉米
3 薯仔 薯仔
4 包谷 包谷#玉米
3、最終結(jié)果
name alias
土豆#馬鈴薯#薯仔 地豆#地蛋#馬鈴薯#土豆#薯仔
玉米#包谷 棒子#包谷#玉米#玉米
即第1、2、4合并,3、5合并(以#號合并,并去重復)
cols = ['name', 'alias']
data = [['土豆',‘地豆#地蛋#馬鈴薯#土豆’],
['馬鈴薯', '薯仔#馬鈴薯'],
['玉米', '棒子#包谷#玉米#玉米'],
['薯仔', '薯仔'],
['包谷', '包谷#玉米']]
frame = pd.DataFrame(data,columns=cols)
import pandas as pd
cols = ['name', 'alias']
data = [['土豆','地豆#地蛋#馬鈴薯#土豆'],
['馬鈴薯', '薯仔#馬鈴薯'],
['玉米', '棒子#包谷#玉米#玉米'],
['薯仔', '薯仔'],
['包谷', '包谷#玉米']]
frame = pd.DataFrame(data,columns=cols)
d=frame.set_index('name').to_dict()['alias'] # 轉(zhuǎn)成dict處理
k,v = [], []
for i in d:
print(k, v)
sv = set(d[i].split('#'))
cf, cfi = False, None # 重復標志
for j in range(len(v)):
if i in v[j]:
k[j].add(i)
v[j].update(sv)
cf, cfi = True, j
break
if cf:
remove = []
for j in range(len(v)):
if j != cfi and k[j] & v[cfi]:
remove.insert(0, j)
k[cfi].update(k[j])
v[cfi].update(v[j])
for j in remove:
k.pop(j)
v.pop(j)
else:
k.append(set([i]))
v.append(sv)
frame = pd.DataFrame({'name':['#'.join(i) for i in k], 'alias':['#'.join(i) for i in v]})
print(frame)
alias name
0 包谷#棒子#玉米 包谷#玉米
1 薯仔#馬鈴薯#地蛋#土豆#地豆 薯仔#土豆#馬鈴薯import pandas as pd
import operator
from collections import Counter
cols = ['name', 'alias']
data = [
['土豆', '地豆#地蛋#馬鈴薯#土豆'],
['馬鈴薯', '薯仔#馬鈴薯'],
['玉米', '棒子#包谷#玉米#玉米'],
['薯仔', '薯仔'],
['包谷', '包谷#玉米']
]
df = pd.DataFrame(data, columns=cols)
#統(tǒng)計重復出現(xiàn)的值列表
inter_lst = reduce(operator.add, df['alias'].apply(lambda x: x.split('#')))
for k, v in Counter(inter_lst).iteritems():
if v == 1:
continue
#找出包含重復值的行并刪除
df1 = df[df['alias'].str.contains(k)]
df = df.drop(df1.index)
#構(gòu)建新行
name_lst = reduce(operator.add, df1['name'].apply(lambda x: x.split('#')))
alias_lst = reduce(operator.add, df1['alias'].apply(lambda x: x.split('#')))
name = '#'.join(list(set(name_lst)))
alias = '#'.join(list(set(alias_lst)))
#添加新行
df = df.append(pd.Series(dict(name=name, alias=alias)), ignore_index=True)
print df北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。