第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將幾行按列值連接成一行,并根據(jù)連接的行數(shù)將結(jié)果數(shù)據(jù)幀拆分為多個數(shù)據(jù)幀

將幾行按列值連接成一行,并根據(jù)連接的行數(shù)將結(jié)果數(shù)據(jù)幀拆分為多個數(shù)據(jù)幀

慕田峪9158850 2022-06-28 10:33:15
我有一個熊貓數(shù)據(jù)框,其中幾行共享特定的列值。對于這些行,我想將這些行連接成一行。并且單個具有共享列值的行數(shù)存在變化,我想將這些數(shù)據(jù)幀拆分為它們自己單獨的數(shù)據(jù)幀,因此對于特定數(shù)量的共享行是一個唯一的數(shù)據(jù)幀。這是我想要的一個例子。import pandas as pddata = [['tom', 2], ['ni2ck', 2], ['j3uli', 4] , ['nic4k', 4], ['jul5i', 4] , ['nic6k', 7], ['ju7li', 7] , ['nic8k', 7], ['ju9li', 7] , ['nic1k', 8], ['car', 8]]df = pd.DataFrame(data, columns = ['Name', 'Age']) df 上面的代碼生成原始數(shù)據(jù)框的樣子結(jié)果將是Name    Age0   tom 21   ni2ck   22   j3uli   43   nic4k   44   jul5i   45   nic6k   76   ju7li   77   nic8k   78   ju9li   79   nic1k   810  car 8我想將共享相同 Age 列的所有行放入一行,然后根據(jù)為每個共享行生成的列數(shù)分離數(shù)據(jù)框。所以結(jié)果看起來像這樣第一個結(jié)果數(shù)據(jù)幀,它有兩行,因為有兩行共享相同的列數(shù)。Name    Name    Age0   tom ni2ck   21   nic1k   car 8第二個結(jié)果數(shù)據(jù)框Name    Name    Name    Age0   j3uli   nic4k   jul5i   4第三個結(jié)果數(shù)據(jù)框    Name    Name    Name    Name    Age0   nic6k   ju7li   nic8k   ju9li   7
查看完整描述

2 回答

?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

這是一種方法


df['New']=df.groupby('Age').cumcount()

s=df.pivot(index='Age',columns='New',values='Name')

l=[ y.dropna(1) for _ , y in s.groupby(s.isnull().sum(1))]

l[0]

New      0      1      2      3

Age                            

7    nic6k  ju7li  nic8k  ju9li

l[1]

New      0      1      2

Age                     

4    j3uli  nic4k  jul5i

l[2]

New      0      1

Age              

2      tom  ni2ck

8    nic1k    car


查看完整回答
反對 回復 2022-06-28
?
紅顏莎娜

TA貢獻1842條經(jīng)驗 獲得超13個贊

使用collections.defaultdict


from collections import defaultdict


d = defaultdict(list)


for age, df_ in df.groupby('Age'):

    d[len(df_.T.columns)].append(df_.reset_index(drop=True).T.loc[['Name']].assign(Age=age))


d = {k: pd.concat(v, ignore_index=True ) for k,v in d.items()}

然后,通過它們擁有的名稱數(shù)量訪問數(shù)據(jù)框。例如,


>>> d[2]

       0      1  Age

0    tom  ni2ck    2

1  nic1k    car    8

>>> d[3]

       0      1      2  Age

0  j3uli  nic4k  jul5i    4


查看完整回答
反對 回復 2022-06-28
  • 2 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號